
c++-pocet slov rôznej dlzky
zdravim chcela by som sa spitat ako vytvorim program ktory nacita text s textoveho suboru, spocita slova rôznej dlzky
aby mi to vypisovalo kolko slov sa v texte nachadza a akej dlzky napr.: slova dlzky 4 znakov:8, slova dlzky 7 znakov:12...
prosim pomôzte mi za pomoc vopred dakujem.
Budes si nacitavat zo suboru znaky po jednom a pocitat ich, a ukladat si vysledky do pola. medzera alebo tab (\t) alebo novy riadok (\n alebo \r) znamena koniec slova
prosím vás mohol by mi to tu niekto napisat budem vam velmi vdacna urcite sa tu najde vela velmi dobrych programatorov
Mas to napisat ty aby si sa nieco naucil(a). Ked to budem pisat ja, tak to bude len zbytocna strata casu a vesmirnej energie :)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream a;
ifstream b;
a.open("text.txt");
a.close();
b.open("text.txt");
if(b.fail())
cout<<"chyba";
b.seekg(0,b.end);
int dlzka=b.tellg();
b.seekg(0,b.beg);
char* pamet=new char[dlzka];
b.read(pamet,dlzka);
b.close();
int dlzkaa[20];
for(int i=0;i<20;i++)
dlzkaa[i]=0;
for(int i=0;i<dlzka;i++)
{
if(pamet[i]=!' ')
{
dlzkaa[i]++;
}
}
toto uz mam napisane a neviem ako dalej pomozes mi pls
To vypada jak vystup z generatora nahodnych riadkov.
Pisal som nacitavaj znaky po jednom. T.j. cele to zmaz, stejne su 2/3 nezmysly, a zacni odznova. Otvor subor (open), a v cykle nacitavaj po jednom znaku az po koniec suboru. Ked chces nutne pouzivat ifstream tak tam je aj fcia get napriklad http://www.cplusplus.com/reference/istream/istream /get/
programovanie mame len prvy rok a zajtra to potrebujem odovzdat, ta stranka je v anglictine a jazyk nie je prave mojou silnou strankou pls help me
Za rok sa to da naucit.
hodnoty z pola pocty si vypis sam(a). V pocty[i] je pocta slov s [i] znakmi. Ak je na pozicii i 0 tak to nevypisujes.
P.S. MAXPOCET si nastav trebars na 1000 apod. (#define MAXPOCET 1000)
P.S.2. je to len zlepenec do skoly, profesional by to robil inac (dynamicke pole apod).
A este som zabudol po tom cykle while je dobre este raz otestovat aktualnypocet, a ak je nenulovy tak zvysit prislusne policko v poli pocty, aby to zaratalo aj posledne slovo po ktorom nenasleduje uz medzera.
while((znak = a.Get()) != EOF) v tomto riadku je chyba ale neviem kde
A get ma byt s malym g