C++ Bc. 18 cpp: Porovnání verzí
nove vysledky |
m Stránka C plus plus Bc. 18 cpp přemístěna na stránku C++ Bc. 18 cpp |
(Žádný rozdíl)
|
Verze z 2. 9. 2006, 09:13
#include <iostream> #include <sstream> std::istream& komentar(std::istream& inp); int main() { using namespace std; istringstream data("/* vstup obsahuje souradnice x a y */ " "/* x */ 123.54 /* y */ 345.53 " " 738.34 542.43 433.22 543.98 " " 832.64 343.25 534.17 541.23 " " 892.83 336.34 /* konec dat */ "); double x, y; double sx = 0, sy = 0; int pocet = 0; // funkce komentar je definovana jako manipulator bez parametru while (data >> komentar >> x >> komentar >> y) { cout << x << " " << y << endl; sx += x; sy += y; pocet++; } if (pocet) cout << "\nteziste: " << sx/pocet << " " << sy/pocet << endl; else cout << "na vstupu nejsou zadne souradnice\n"; } std::istream& komentar(std::istream& inp) { char z; while (inp >> z) { // komentar zacina dvoji znaku /* if (z != '/' || inp.peek() != '*') { inp.putback(z); return inp; } inp.get(); // nactu znak '*' // komentar konci dvojici znaku */ while (inp >> z) if (z == '*' && inp.peek() == '/') { inp.get(); // nactu znak '/' break; // hledam dalsi komentar } } return inp; }
123.54 345.53 738.34 542.43 433.22 543.98 832.64 343.25 534.17 541.23 892.83 336.34 teziste: 592.457 442.127
[ Zpět ]