// tied_kaK.cpp - Lukujen lukeminen tiedostosta // Ohjelma lukee tiedostosta LUVUT.DAT lukuja ja tulostaa niiden // summan ja keskiarvon. // Kunnollinen versio #include #include int main(void) { double luku,summa,ka; int n; ifstream fi("luvut.dat"); // ifstream fi; // fi.open("luvut.dat"); if ( !fi ) { cout << "Tiedosto ei aukea!" << endl; return 1; } summa = 0.0; n = 0; ka = 0.0; string s; // 1. avaa tiedosto lukemista varten // 2. yritetään lukemista merkkijonoon // 3. jos onnistu, käsitellään rivi // 4. jatketaan 2. while ( getline(fi,s) ) { if ( sscanf(s.c_str(),"%lf",&luku) < 1 ) 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; }