Schreibe ein Programm das aus einer Txt Datei Temperaturwerte einlesen soll. Die Werte werden durch Stunde und Temperaturwert paaren gesetzt. Doch bevor es in den Vektor kommt muss man es vorher von Celsius in Fahrenheit umrechnen. Und habe eine Prüfung geschrieben die Werte von über 40 Grad nicht annehmen soll. Und da das Probleme, es wird ausgeben das es ein falscher wert ist aber es werden die Daten eingelesen obwohl ich es so will das das Programm bei falschen werten die Eingabe abbricht.
Und die Werte die in der Txt sind:
Also zuerst kommt Stunden dann als Trennzeichen \ und dann die Temperatur.
Code:
void temp_stats()
{
cout << "Geben Sie bitte den Namen der Eingabedatei ein:";
string name;
cin>>name;
ifstream istr(name.c_str());
if(!istr) cerr << "Fehler beim Oeffnen der Eingabedatei" << name << endl;
vector <int> temps;
int a;
double b;
char c;
while(istr)
{
if(istr>>a>>c>>b)
if(b < 0 || b > 40){
cout << "Falscher Wert!" << endl; break;}
else {
b = b * 1,8 + 32; // Celsius in Fahrenheit umrechner
temps.push_back(b);}
}
istr.close();
double sum = 0;
for(int i = 0; i < temps.size(); ++i)sum += temps[i]; // Mittelwert der Temperaturen berechnen
cout << "Mittlerer Temperaturwert: " << sum/temps.size() << endl;
sort(temps.begin(),temps.end()); // Zentralwert der Temperauren berechnen
cout << "Zentraler Temperaturwert: " << temps[temps.size()/2.0] << endl;
}
int main()
{
temp_stats();
keep_window_open();
return 0;
}
Code:
0\2
11\23
19\43