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");
}
#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.