Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Binary Speichern

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
27.04.2004, 12:12 Uhr
KaraHead



Hi, nur mal so eine kleine Bescheidene Frage:

Was hat der Compiler für Probleme mit dem Quelltext?


C++:
#include <iostream>
#include <string>

using namespace std;

struct per{
string name;
int alter;
};

void f_write(per);
per f_read();

int main()
{
per prsn;
char c;
cout<<"Moechten sie [s]peichern oder [l]aden?";
cin>>c;
switch(c){
case 's':{
    cout<<"Bitte geben sie ihren namen ein: ";
    cin>>prsn.name;
    cout<<"\nBitte geben sie ihr Alter ein: ";
    cin>>prsn.alter;
    f_write(prsn);};break;
case 'l':{
    prsn=f_read();
    cout<<"Ihr letzter Name war: "<<prsn.name<<endl;
    cout<<"Ihr letztes Alter war: "<<prsn.alter<<endl;break;};
default:{cout<<"Falsche eingabe";};

getchar();
return 0;
};

void f_write(per person)
{
FILE* ptr;
if(ptr=fopen("test.fil","wb")){
    fwrite(&person,sizeof(person),1,ptr);
    fclose(ptr);
}else
    {cout<<"Konnte die Datei nicht erstellen!"<<endl;
    getchar();
    exit(1);};
};

per f_read()
{
per person2;
FILE* ptr;
if(ptr=fopen("test.fil","rb")){
    fread(&person2,sizeof(person2),1,ptr);
    fclose(ptr);

}else
    {cout<<"Konnte die Datei nicht lesen!"<<endl;
    getchar();
    exit(1);};
    
    return person2;
};



Fehlermeldungen:

Code:
38 C:\Programme\Dev-Cpp\Projects\binary_write_read.cpp
parse error before `{'

40 C:\Programme\Dev-Cpp\Projects\binary_write_read.cpp
`ptr' undeclared (first

41 C:\Programme\Dev-Cpp\Projects\binary_write_read.cpp
`person' undeclared




Da ich bei der FILE abteilung neu bin, hab ich auch keinen Plan warum es nicht geht. Besonders da ich die Funktionen f_read und f_write als erstes gecodet habe und er da nicht gemekert hat.

Ich erwarte keine Lösung aber ein paar Tipps wären schön. Danke

Dieser Post wurde am 27.04.2004 um 12:14 Uhr von KaraHead editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
27.04.2004, 12:48 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


wer switch "öffnet" sollte es auch wieder schliessen...
aussdem hast du hinter die abschliessende main-klammer noch nen semikolon gepackt.
das ist im moment erstmal alles was meinem "Online-Parser" auffällt
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.04.2004, 13:10 Uhr
KaraHead



LOL das es zwei kleine Zeichen sind, die mich seit ner halben Stunde fertig machen, hät ich nicht gedacht.

Danke, ich hätte gedacht das der Fehler komplizierter ist. Das zeigt mir das ich doch nicht so ganz verpeilt bin wie ich immer dachte

Dieser Post wurde am 27.04.2004 um 13:11 Uhr von KaraHead editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
27.04.2004, 13:19 Uhr
KaraHead



Achja noch ne kleine Frage:
Muss ich den Pointer "FILE* ptr" nicht wieder freigeben???
Oder gilt das nur bei dynamischer allokation??
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
27.04.2004, 17:35 Uhr
Pablo
Supertux
(Operator)


Doch, das solltest du, das ist jedenfalls sauberer. Ich galube, dass die Funktionen selbst ihre FILE* freigeben, wenn sie verlassen werden.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
27.04.2004, 18:06 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Was meinst du mit freigeben? Du musst höchstens die Datei wieder schließen.

Freigeben könntest du nur dynamisch reservierten Speicherplatz, aber davon hast du ja keinen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
27.04.2004, 21:18 Uhr
Pablo
Supertux
(Operator)


Mit Feigeben meint er fclose zu benutzen.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
27.04.2004, 22:33 Uhr
KaraHead



 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: