// Tied_kaG.cpp - Lukujen lukeminen tiedostosta // Ohjelma lukee tiedostosta LUVUT.DAT lukuja ja tulostaa niiden // summan ja keskiarvon. Jos tiedostossa on virheellisiä // rivejä, tulostetaan ne. #include #include #include // File stream #include using namespace std; int main(void) { double luku,summa,ka; string s; int n; ifstream fi("luvut.dat"); if ( !fi ) { cout << "Tiedosto ei aukea!" << endl; return 1; } summa = 0.0; n = 0; ka = 0.0; while ( getline(fi,s) ) { if ( sscanf(s.c_str(),"%lf",&luku) <= 0 ) { cout << s << "\n"; continue; } summa += luku; n++; } fi.close(); if ( n > 0 ) ka = summa/n; cout.precision(2); cout.setf(ios::showpoint | ios::fixed); cout << "\n"; cout << "Lukuja oli " << n << " kappaletta\n"; cout << "Niiden summa oli " << summa << "\n"; cout << "ja keskiarvo oli " << ka << endl; return 0; }