19. december 2002 - 18:49
Der er
8 kommentarer og 1 løsning
Hurtig hjælp
Hejsa Jeg er på den afsluttende opgave i et kursus, men jeg kan ikke få dette til at virke hvad er der galt med koden??? #include <iostream.h> #include <fstream.h> #include <string.h> #include <conio.h> class fil { public: void laes() const { char a[100]; ifstream ifil("c:\\cpp\\gods\\gods.dat"); ifil>>a; } skriv(char vare, char mode, float pris) const { ofstream ofil("c:\\cpp\\gods\\gods.dat"); ofil<<"Ost\|\| frys\|\|13,45"; } }; int main(){ fil ost; string varen, moden; float prisen; clrscr(); cout<<"Vare "; cin>>varen; cout<<" Maade: "; cin>>moden; cout<<" Prisen : "; cin>>prisen; ost.skriv(varen,moden,prisen); return 0; }
Annonceindlæg fra Conscia
19. december 2002 - 19:08
#1
Følgende må være et skridt i den rigtige retning: #include <iostream.h> #include <fstream.h> class fil { public: void laes() const { char a[100]; ifstream ifil("c:\\cpp\\gods\\gods.dat"); ifil>>a; cout << a << endl; }; void skriv(char *vare, char *mode, float pris) const { ofstream ofil("c:\\cpp\\gods\\gods.dat"); ofil << vare << "||" << mode << "||" << pris << endl; }; }; int main(){ fil ost; char varen[100], moden[100]; float prisen; cout<<"Vare "; cin>>varen; cout<<" Maade: "; cin>>moden; cout<<" Prisen : "; cin>>prisen; ost.skriv(varen,moden,prisen); ost.laes(); return 0; }
19. december 2002 - 19:09
#2
Jeg har konverteret til standard C++, men det er kun for convenience.
19. december 2002 - 21:02
#3
Jepsk, det virker men hvordan får jeg den til at tilføje linier i steden for at overskrive den linie der er der i forvejen???
19. december 2002 - 21:19
#4
Så skal du åbne filen i append mode.
19. december 2002 - 21:20
#5
ofstream ofil("c:\\cpp\\gods\\gods.dat", ios::app); hvis jeg husker rigtigt !
19. december 2002 - 22:52
#6
Ja, du huskede rigtigt, så skal jeg bare finde ud af hvordan man får alle linierne frem igen *S* Jeg kan kun få en linie frem af gange *S*
19. december 2002 - 22:55
#7
Du kan enten læse demind og processe dem en af gangen. Eksempel: char a[100]; ifstream ifil("c:\\cpp\\gods\\gods.dat"); while(!ifil.eof()) { ifil>>a; cout << a << endl; } eller så må lave a om til et 2 dimensionelt array, så du kan gemme allelinierne i det. Eksempel: char a[100][100]; ifstream ifil("c:\\cpp\\gods\\gods.dat"); int n = 0; while(!ifil.eof()) { ifil>>a[n]; n++; }
14. januar 2003 - 20:45
#8
gnyff> Har du fået løst dit problem ?
15. januar 2003 - 07:22
#9
Ja, jeg fik løst mit problem, undskyld jeg glæmte at afslutte spørsmålet. Mange tak for hjæpen
Kurser inden for grundlæggende programmering