I/O

Tags:    c++

Jeg er ved at prøve noget med noget I/O, men MinGW vil ikke compile følgende:

Fold kodeboks ind/udKode 


I linje 23 (ifstream Fil("log.txt");) siger den 'conflicting'

Min blog: http://winsor.hotserv.dk



10 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Man kan kun have én variabel med det samme navn i samme scope.
Du har en variabel med navnet Fil i både linie 19 og 23, det går ikke.

Kald den fil du har i linie 23 for noget andet.
Du skal huske at lukke Fil fra linie 19 inden du kan åbne filen igen.


Ved du også hvad problemet med fil.close() er?

Fold kodeboks ind/udKode 


Min blog: http://winsor.hotserv.dk


Er ikke så god til det her.

Måske skulle du, deklarere filen eller hvad det kaldes:
Fold kodeboks ind/udKode 


og der efter åbne med:
Fold kodeboks ind/udKode 







Man kan kun have én variabel med det samme navn i samme scope.
Du har en variabel med navnet Fil i både linie 19 og 23, det går ikke.

Kald den fil du har i linie 23 for noget andet.
Du skal huske at lukke Fil fra linie 19 inden du kan åbne filen igen.



Man kan kun have én variabel med det samme navn i samme scope.
Du har en variabel med navnet Fil i både linie 19 og 23, det går ikke.

Kald den fil du har i linie 23 for noget andet.
Du skal huske at lukke Fil fra linie 19 inden du kan åbne filen igen.


Ved du også hvad problemet med fil.close() er?

Fold kodeboks ind/udKode 


Min blog: http://winsor.hotserv.dk



Jeg fandt selv ud af det:

Fold kodeboks ind/udKode 


Er der nogen der kan forklare, hvordan man undgår alt indholdet i sin tekstfil bliver overskrevet, når programmet bliver kørt igen?

Min blog: http://winsor.hotserv.dk



Er der nogen der kan forklare, hvordan man undgår alt indholdet i sin tekstfil bliver overskrevet, når programmet bliver kørt igen?


Du bruger append mode når du åbner filen:

ofstream Fil("log.txt", ios::app);



Er der nogen der kan forklare, hvordan man undgår alt indholdet i sin tekstfil bliver overskrevet, når programmet bliver kørt igen?


Du bruger append mode når du åbner filen:

ofstream Fil("log.txt", ios::app);


Tak, det virker, men skaber et nyt problem; jeg henter altid det samme fornavn og det samme efternavn, nemlig det jeg har tastet første gang. Er der en måde hvorpå man kan hente det ældste først?

Jeg er også interesseret i, hvordan man kan lave struktur i sin .txt-fil. Hvis en har et link, vil jeg bliver meget glad :)

Min blog: http://winsor.hotserv.dk



Tak, det virker, men skaber et nyt problem; jeg henter altid det samme fornavn og det samme efternavn, nemlig det jeg har tastet første gang. Er der en måde hvorpå man kan hente det ældste først?

Jeg er også interesseret i, hvordan man kan lave struktur i sin .txt-fil. Hvis en har et link, vil jeg bliver meget glad :)


For at læse den sidste bliver du nødt til at læse hele filen og kun huske det sidste

Jeg ved ikke rigtigt hvad du mener med "struktur i .txt-fil"
Normalt opfatter man en fil som en række karakterer, som man læser fra en ende af.
Du kan måske løse problemet ved at lave alle "records" i filen samme størrelse og arbejde med filen som en binær fil.

Hvis ikke filen er meget stor er det sansynligvis bedre at læse hele filen ind i hukommelsen på én gang og så arbejde med data der.

Du kan læse mere om filer (streams) her:
http://cppreference.com/cppio/



For at læse den sidste bliver du nødt til at læse hele filen og kun huske det sidste ...


Hvis man finder det sidste af tekstfilen med .eof, er der så en måde hvorpå man kan læse de sidste to sætninger på?

At finde det sidste af tekstfilen kan jeg godt selv, men det ville være fint hvis du kunne vise det sidste med et kodeeksempel.
Min blog: http://winsor.hotserv.dk



Man kan ikke rigtigt gå tilbage i en fil :-(

Så for at finde den sidste må du:
do
{
LæsEtElement()
}
while(!endoffile())

Problemet her er at man først når eof når man har forsøgt at læse ud over enden på filen.

Kode til at læse sidste linie i en fil:
Fold kodeboks ind/udKode 




Tak for hjælpen.

Min blog: http://winsor.hotserv.dk



t