Ifstream

Tags:    c++

<< < 123 > >>
Hey.
Jeg har en fil.bin som indeholder et tal. Dette tal vil jeg gerne have skrevet over i en int. Hvordan skal jeg gøre dette?
Har prøvet med:
Fold kodeboks ind/udKode 





Der sker det at den ikke læser filen. Den kører else istedet for if.
Så den siger:
Unable to load Bank.bin file! \nBe sure you have written something to the file, before reading it!




Har du skrevet noget i filen? Findes filen? Hvordan ser filen ud?



Filen er skrevet i samme mappe og hedder Bank.bin
Ja. Der er skrevet et tal som er 100 til filen.



Er det en binær fil?
Ved du hvad en binær fil er?
Hvordan har du lavet filen?

I eksemplet fra før er der to dele i if'en

if(file && file.read((char *)&someInt, sizeof(someInt)))

Prøv at finde ud af hvilken af de to der fejler.






Nej ved ikke helt hvad en binær fil er :D
Det eneste jeg prøver på er at få tallet fra min binære fil over i en double.
Hvad mener du med at jeg skal finde ud af hvilken af de to der fejler?



Hvis det er en almindelig fil, skal/kan du bruge >> til at læse med. Hvis det skal være lidt bedre end blot fungere, kan du overveje at bruge getline til at læse en linie fra filen, putte den over i en stringstream og bruge >> på den. Se min Guide for detaljer.

Det jeg mente med at du skulle finde ud af hvilke af de to der fejler er at denne linje:

if(file && file.read((char *)&someInt, sizeof(someInt)))

Gør flere ting, den finder ud af om filen blev åbnet, derpå forsøger den at læse en int, og til slut checker den om den kunne læse.

Du kan splitte det op:

Fold kodeboks ind/udKode 


Eller hvis ikke filen er binær:

Fold kodeboks ind/udKode 




Så man kunne altså skrive:

Fold kodeboks ind/udKode 

Eller hvordan?




Nej, du bliver nødt til at bruge getline til at læse en streng. Eller du kan bruge >> til at læse til en streng. Når du så har det ovre i strengen kan du putte det over i stringstream'en.



Prøver lige engang. Men programmet fucker op lige nu.. den siger jeg ikke kan bruge else uden if.. Og jeg har en if?
Fold kodeboks ind/udKode 





Nu har jeg simpelthen prøver alt! Og jeg kan stadig ikke få det til at virke..
Hvad er der galt her?!
Fold kodeboks ind/udKode 





<< < 123 > >>
t