Forum » Programiranje » C++ datoteke
C++ datoteke
hexor ::
Hejla:)Imam program ki iz vhodne datoteke vhod.txt,ki vsebuje poljubno besedilo tvori datoteko izhod.txt z enakim besedilom,le da je preoblikovano na drug način:velike črke pretvarja v male črke
Zdaj me pa zanima,kako bi popravil moj program tako da bi vsako prebrano besedo,ki je daljša od 8 znakov zamenjal z znaki *.Na misel mi je padla metoda strlen() samo se pa uporablja z stringi ne pa z polji znakov,mogoče pa bi vstavil cstr() metodo ki bi pretvarjala znake v string.....Hvala za vsako pomoč!
int main() { char znak; ifstream dat1("vhod.txt",ios::in); ofstream dat2("izhod.txt",ios::out); while(!dat1.eof()) { znak=dat1.get(); if((znak>64)&&(znak<91)) { znak=znak+32; } dat2<<znak; } system("PAUSE"); return 0; }
Zdaj me pa zanima,kako bi popravil moj program tako da bi vsako prebrano besedo,ki je daljša od 8 znakov zamenjal z znaki *.Na misel mi je padla metoda strlen() samo se pa uporablja z stringi ne pa z polji znakov,mogoče pa bi vstavil cstr() metodo ki bi pretvarjala znake v string.....Hvala za vsako pomoč!
technolog ::
imej eno spremeljivko, recimo ZADNJI, v kateri štej koliko iteracij nazaj si srečal presledek nazadnje (ZADNJI++). Ko srečaš še en presledek, nadomesti zadnjih ZADNJI znakov z *, ZADNJI pa nastavi spet na 0.
hexor ::
pomeni dam še en if znotraj while-a in povečujem števec,samo kako pa potem nastavim pogoj da je število znakov večje od 8?
ERGY ::
Jaz bi uporabil string::length() in pa string::replace(). Drugo mislim da sploh ni potrebno. Length() za določanje dolžine niza in replace v primeru, da je dolžina daljša od 8.
Lp
Lp
Zgodovina sprememb…
- spremenilo: ERGY ()
golobich ::
//Za spremenit znake si že pogruntal kako gre, to maš pa da spremeniš besede daljše od 8 znakov v * #include <iostream> #include <fstream> using namespace std; int main () { ifstream beri ("vaja.txt"); ofstream pisi ("vaja2.txt"); if ( (beri.is_open() ) && (pisi.is_open()) ) { while ( beri.good() ) { string beseda = ""; beri >> beseda; if (beseda.length() > 7) { for (int i=0; i<=beseda.length(); i++) { pisi << "*"; } pisi <<" "; } else { pisi << beseda <<" "; } } beri.close(); pisi.close(); } system ("pause"); return 0; }
technolog ::
Ta koda je mal bullshit, ker bo tudi nove vrstice, tabulatorje in ostali whitespace spremenila v presledke.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [C++] Izpis različnih besed, frekvenca besed in črkOddelek: Programiranje | 1819 (1709) | gendale |
» | C++ programaOddelek: Programiranje | 1032 (818) | DubleG |
» | [Java]Branje podatkov iz datotekeOddelek: Programiranje | 2666 (1972) | jeryslo |
» | [C++][Naloga] Tekstovne datoteke, realna številaOddelek: Programiranje | 4053 (3669) | Gundolf |
» | [NALOGA][NASM] problem pri povezovanju s C-jevskimi funkcijamiOddelek: Programiranje | 1384 (1242) | c00L3r |