Skriv videre til en txt-fil, og "space" i string

Tags:    c++

<< < 123 > >>
Goddag,
jeg sidder med problemet i C++, at når jeg skriver til en txt-fil mere end én gang i samme program, så overskrives blot den første mængde data. Hvordan får jeg C++ til at skrive videre på txt-filen?
Et andet spørgsmål er, hvordan jeg kan få C++ til at ignorere, når jeg overfører nogle værdier med space/mellemrum til en string? Dvs. når jeg skriver en sætning, og ikke blot et ord?

Mvh. Clive



Det er fordi du skal fortælle din steam at den skal appende :)
Fold kodeboks ind/udKode 

Dit andet spørgsmål forstår jeg ikke rigtig. Der skal lidt mere forklaring til.



Det jeg mener med det andet spørgsmål er, når jeg skriver et ord fra tastatur til en string, så er der intet problem. Men når jeg skriver en sætning (altså minimum 2 ord med mellemrum), så springer den videre i den do-while løkke jeg har lavet.

Mvh. Clive



Indlæg senest redigeret d. 10.03.2008 14:27 af Bruger #13404
Må jeg se koden?



Jeg tror du skal bruge getline i stedet for >>

F.eks:
Fold kodeboks ind/udKode 




Martin Slot:
Ja, her kommer den del af koden jeg snakker om, hvor min string ikke vil godtage at der forekommer mellemrum i en sætning:
Fold kodeboks ind/udKode 

Jeg har desuden en headerfile, hvori structen Person er oprettet, med adresse og telefon som strings.
Yderligere er der jo også en main funktion, som jeg ikke lige har medtaget.
Problemet ligger i, hvis jeg under "adresse" indtaster et navn med mellemrum, så springer den til slutningen af løkken, og dermed undlader den del med telefonnummeret. Er det bare mig, som har misforstået noget - eller må der i en string ikke forekomme data med mellemrum?

Mvh. Clive



Du skal bruge getline, som i mit eksempel, i stedet for >>



Som Bertel siger. Brug getline :)



Er jeg hel gal på den, hvis det er jeg skal bruge getline til at undgå mit lille problem med at visse elementer i min do-while-løkke springes over, såsnart der forekommer et mellemrum i en sætning? - det er nemlig én af mine problemstillinger.
Det andet er, at jeg skal kunne skrive videre til en txt-fil, uden af overskrive det, der evt. står der i forvejen. Så vidt jeg har forstået, er det her getline kommer ind i billedet??

Mvh. Clive



getline bruges når du vil læse mere end ét ord ind i en streng

Du kan bruge følgende for at tilføje til enden på filen i stedet for at overskrive:

std::ofstream out("test.dat", std::ios::app);



getline bruges når du vil læse mere end ét ord ind i en streng

Du kan bruge følgende for at tilføje til enden på filen i stedet for at overskrive:

std::ofstream out("test.dat", std::ios::app);


Jeg skal lige høre om det absolut skal være en .dat-fil man skriver til? Jeg kunne ikke forestille mig, det er det som gør jeg ikke kan få det til at virke.
Jeg kan for en god ordens skyld fortælle, at det er i min int main() jeg udskriver til fil. Og så bruger jeg i øvrigt i samme main iteratorere til at opsamle data for alle de personer jeg tilfører min adresse-bog, og udskriver til fil.

Mvh. Clive



<< < 123 > >>
t