Program: wypisujący zawartość pliku na ekran, a następnie sumujący wartości w poszczególnych kolumnach.
Do działania programu został wykorzystany przykładowy plik tekstowy (nazwa “zad60.txt”) o zawartości:
Nazwisko pietro osob c.o. c.w. razem
Jankowski 1 3 1870 7920 11422
Borowski 4 4 330 10560 11178
Kaľmierczak 7 6 1485 15840 18621
Pietruszka 0 4 3025 10560 16225
Nogaj 9 3 2640 7920 12864
Kapitan 3 5 2640 13200 18144
Rostowski 2 2 4950 5280 14550
Aleksiak 1 3 1485 7920 10701
Romanowski 6 7 3300 18480 24660
Kompilator: Dev C++
Kod programu:
//Sumowanie wartości w poszczególnych kolumnach
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;
int main(int argc, char *argv[])
{
stringstream ss;
fstream plik;
plik.open("zad60.txt");
int length;
plik.seekg(0,ios::end);
length=plik.tellg();
plik.seekg(0,ios::beg);
char *buffer;
buffer = new char[length];
plik.read(buffer,length);
cout.write(buffer,length);
int sosob=0,sco=0,scw=0,srazem=0;
int liczba=0,malyLicznik=0;
for(int i=0;i<length;i++){
if((buffer[i]>=48)&&(buffer[i]<=57)){
ss<<buffer[i];
} else if((buffer[i-1]>=48)&&(buffer[i-1]<=57)){
ss>>liczba;
malyLicznik++;
switch(malyLicznik){
case 2 : sosob+=liczba; break;
case 3 : sco+=liczba; break;
case 4 : scw+=liczba; break;
case 5 : srazem+=liczba; break;
};
ss.clear();
};
if(buffer[i-1]=='\n') malyLicznik=0;
};
cout<<"\tsumy:\t"<<sosob<<"\t"<<sco<<"\t"<<scw<<"\t"<<srazem<<"\n";
int LiczTab=0;
string ciag;
ciag.clear();
plik.close();
system("PAUSE");
return EXIT_SUCCESS;
}