[ fanfare @ 23.01.2010. 23:10 ] @
Iz kojeg razloga nece da ucita podatke iz zadatog fajla? Code: #include <iostream> #include <iomanip> // manipulatori #include <fstream> // rad sa fajlom #include <string> #include <vector> using namespace std; template<class T> void print(const vector<T> &v) { for (int i=0; i<v.size(); i++) cout << v[i] << " "; cout << endl; } main() { vector<char> slova; vector<int> cifre; vector<string> rijeci; vector<string> brojevi; char *imeDat , tekst[255]; imeDat=new char; cout << "Unesite naziv datoteke: "; cin >> imeDat; ifstream ulaz(imeDat); if (ulaz) while (ulaz ) { ulaz.getline(tekst,255,'\n'); // cita liniju iz datoteke ili dok nedodje do \n int i=0; // trenutni polozaj u stringu while(tekst[i]) { // znak+cifre=negativan broj if(tekst[i]=='-' && tekst[i+1]>='0' && tekst[i+1]<='9') { int j=i+1; while(tekst[j]>='0' && tekst[j]<='9') { cifre.push_back(tekst[j]-'0'); j++; } char *pom=new char[j-i+1]; strncpy(pom,&tekst[i],j-i); // kopira string duzine j-i,iz Іstring[i] u pom pom[j-i]='0'; // brojevi.dodaj(broj(pom)); i=j; continue; } // cifre,brojevi if(tekst[i]>='0' && tekst[i]<='9') { int j=i; while(tekst[i]>='0' && tekst[i]<='9') { cifre.push_back(tekst[i]-'0'); i++; } char *pom=new char[i-j+1]; strncpy(pom,&tekst[j],i-j); pom[i-j]='0'; // brojevi.dodaj(broj(pom)); continue; } // mala slova if(tekst[i]>='a' && tekst[i]<='z') { slova.push_back(tekst[i]); i++; continue; } // velika slova if(tekst[i]>='A' && tekst[i]<='Z') { slova.push_back(tekst[i]); i++; continue; } i++; // sledeci karakter za obradu } } else cout << "Nema te datoteke!" << endl; cout << "slova: "; print(slova); cout << "cifre: "; print(cifre); system("pause"); } A zadatak je bio sledeci: Napisati program koji otvara neku tekstualnu datoteku i analizira njen sadržaj. Rezultat analize (istorodni podaci, npr. slova, cifre, riječi, brojevi, ...) treba da se smjesti u odgovarajući kontejner (koristiti šablon vector), a zatim da se ispiše na standardnom izlazu ili da se upiše u neku drugu datoteku. |