Forum » Programiranje » [C++] branje iz datoteke in spreminjanje nizov
[C++] branje iz datoteke in spreminjanje nizov
Scooty` ::
/* 6. naloga Napišite program, katerega vhod je tekstovna datoteka VHOD,
izhod pa tekstovna datoteka IZHOD, na kateri so zamenjane vse besede,
katerih lihe črke so samoglasniki z nizom, ki ga uporabnik vpiše preko terminala.*/
Ali morda ve kdo, zakaj program ne deluje? poskušal sem že na vse načine pa ne znam popraviti.. morda ve kdo za preprostejšo rešitev?
izhod pa tekstovna datoteka IZHOD, na kateri so zamenjane vse besede,
katerih lihe črke so samoglasniki z nizom, ki ga uporabnik vpiše preko terminala.*/
void main() { // char niz[100]; char niz1[20]; cin>>niz1; char niz[100];int i=0; ifstream dat("vhod.txt"); ofstream data("izhod.txt"); char tmp; while (! dat.eof()) { do { tmp=dat.get(); //prepis besede niz[i]=tmp; //iz datoteke v niz i++; } while(tmp != ' ' || '.' || ','); for (int n=0; niz[n] !='\0'; n++) { if (((n % 2)==0) && niz[n] == ('a' || 'e' || 'i' || 'o' || 'u')) //če je liha črka samoglasnik { for (int j=0; niz1[j] !='\0'; j++) { //vpis niza1 v datoteko data.put(niz1[j]); } data.put(' '); } else //če ne { for (int j=0; niz[j] != '\0'; j++) //pa vpis niza v datoteko { data.put(niz[j]); } } } } }
Ali morda ve kdo, zakaj program ne deluje? poskušal sem že na vse načine pa ne znam popraviti.. morda ve kdo za preprostejšo rešitev?
lp
- spremenilo: snow ()
Gundolf ::
Za začetek:
while(tmp != ' ' || '.' || ',')
Ne naredi tega kar ti hočeš. Na žalost se primerjanj ne da pisat na tak način. To kar ti hočeš se napiše takole:
while((tmp != ' ') && (tmp != '.') && (tmp != ','))
Popravi tole za začetek in poskusi znova. Pa ko boš že to delal, dodaj še ostala ločila
Potem pa naslednjič bolj točno povej kaj ne deluje. Če ti compiler napiše napako povej napako in vrstico, če compiler prebavi to kodo potem povej, kako ti program ne deluje, a vrne izhodno datoteko enako vhodni, a se zacikla, a ti formatira računalnik itd.
while(tmp != ' ' || '.' || ',')
Ne naredi tega kar ti hočeš. Na žalost se primerjanj ne da pisat na tak način. To kar ti hočeš se napiše takole:
while((tmp != ' ') && (tmp != '.') && (tmp != ','))
Popravi tole za začetek in poskusi znova. Pa ko boš že to delal, dodaj še ostala ločila
Potem pa naslednjič bolj točno povej kaj ne deluje. Če ti compiler napiše napako povej napako in vrstico, če compiler prebavi to kodo potem povej, kako ti program ne deluje, a vrne izhodno datoteko enako vhodni, a se zacikla, a ti formatira računalnik itd.
snow ::
#include <string> #include <fstream> #include <sstream> #include <iostream> using namespace std; bool isvowel(char s) { return s=='a' || s=='e' || s=='i' || s=='o' || s=='u'; } int main() { ifstream ifVhod("vhod.txt"); ofstream ofIzhod("izhod.txt"); string beseda, vrstica, sout, niz; cin>>niz; stringstream ssin,ssout; while(getline(ifVhod,vrstica)) { //cout<<vrstica<<endl; ssin.str(vrstica); ssin.clear(); ssout.str(""); while(ssin>>beseda) { cout<<beseda<<" "; int lihe=1; for(int i=0;i<beseda.size();i+=2) { if(!isvowel(beseda[i])) { lihe=0; break; } } if(lihe==1) { ssout<<niz<<" "; } else { ssout<<beseda<<" "; } } sout=ssout.str(); if(sout.size()>0) { sout.erase(sout.size()-1); } ofIzhod<<sout<<"\n"; } return 0; }
c++ prva lekcija (pred hello world):
int main(){}
Pa drugič si preberi temo o imenovanju tem, ko odpiraš novo. Tokrat bom jaz popravil.
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
Scooty` ::
Najlepša hvala obema za pomoč. Sam tega nebi znal naredit..
snow, se opravičujem glede imenovanja teme.. bom naslednjič bolj pazljiv..
lep pozdrav, Scooty'
snow, se opravičujem glede imenovanja teme.. bom naslednjič bolj pazljiv..
lep pozdrav, Scooty'
lp
snow ::
Ni problema.
Hmm mogoče je treba tole mojo kodo še malo popravit. Možno da kakšen presledek kje poje... pa kaka ločila je še treba čekirat.
Če bo še kak problem kar vprašaj... prvo pa preglej kodo in probaj razumet. :)
Hmm mogoče je treba tole mojo kodo še malo popravit. Možno da kakšen presledek kje poje... pa kaka ločila je še treba čekirat.
Če bo še kak problem kar vprašaj... prvo pa preglej kodo in probaj razumet. :)
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | C++ datotekeOddelek: Programiranje | 936 (763) | technolog |
» | C strukture, kazalci naloga pomocOddelek: Programiranje | 1474 (1369) | DavidJ |
» | Pomoc v C-juOddelek: Programiranje | 1313 (1225) | rfmw |
» | [NALOGA][NASM] problem pri povezovanju s C-jevskimi funkcijamiOddelek: Programiranje | 1387 (1245) | c00L3r |
» | problem with c/c++ like programOddelek: Programiranje | 1171 (996) | OwcA |