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 | 1885 (1775) | gendale |
» | C++ programaOddelek: Programiranje | 1082 (868) | DubleG |
» | [Java]Branje podatkov iz datotekeOddelek: Programiranje | 2724 (2030) | jeryslo |
» | [C++][Naloga] Tekstovne datoteke, realna številaOddelek: Programiranje | 4127 (3743) | Gundolf |
» | [NALOGA][NASM] problem pri povezovanju s C-jevskimi funkcijamiOddelek: Programiranje | 1431 (1289) | c00L3r |