Forum: C-Programmieren
Moderatoren: juergen, Martin ConradThema: Zeiger Problem!:(
Zeiger Problem!:(
Maksi am 11.01.2012 um 21:26
Habe hoffentlich nur ein kleines Problem in meinem Programm!
Kann bitte jemand drüber gucken.
typedef struct TStud {
char name[20];
char gebdat [20];
char st[20];
char semester[10];
} Tstud;
TStud a;
FILE *f;
char lesen(FILE*f){
fscanf(f,"%s %s %s %s",&(a.name),&(a.gebdat),&(a.st),&(a.semester));
return printf("%s %s %s %s\n" ,a.name ,a.gebdat ,a.st ,a.semester);
}
char schreiben(FILE*f){
char b[10];
scanf("%s %s %s %s %c",&(a.name),&(a.gebdat),&(a.st),&(a.semester),&b[10]);
return fprintf(f,"%s %s %s %s" ,a.name ,a.gebdat ,a.st ,a.semester);
}
int _tmain(int argc, _TCHAR* argv[])
{
TStud a;
FILE *f;
f=fopen("Stud.txt","a+");
while(!feof(f)){
lesen(f);
}
char b[10]="0";
while(b[10]!='EOF'){
schreiben(f);
}
fclose (f);
Re: Zeiger Problem!:(
Patrick am 12.01.2012 um 07:55
--
To follow the path: look to the master, follow the master, walk with the master, see through the master, become the master.
[EDIT] - Re: Zeiger Problem!:(
bcc-fan am 12.01.2012 um 18:06
fscanf(f,"%s %s %s %s",&(a.name),&(a.gebdat),&(a.st),&(a.semester));
brauchst du kein & da du strings einliest. Schau noch mal in deine Unterlagen.
Und dann noch mal ansehen das mit
char b[10]
Mit welcher Zahl fängt man bei C und verwandten Sprachen an zu zählen?
Die Rückgaben deiner Funktionen solltest du auch noch mal überdenken.
Globale und locale Varible kennst du? Wenn ja, würde ich die Namen im Quelltext ein wenig anders wählen damit eine Gefahr für Fehler geringer wird. Hab das nicht getestet ob letzteres bei dir jetzt eine Rolle spielt.
MfG bcc-fan
--
C/C++
only just for fun
Re: Zeiger Problem!:(
Maksi am 12.01.2012 um 19:17
Re: Zeiger Problem!:(
Maksi am 12.01.2012 um 19:20
[C-CODE] typedef struct TStud {
char name[20];
char gebdat [20];
char st[20];
char semester[10];
} Tstud;
TStud a;
FILE *f;
Tstud lesen(FILE*f){ // Heißt es das der Rückgabewert direkt an die TStud übergeben wird?
fscanf(f,"%s %s %s %s",a.name,a.gebdat,a.st,a.semester);
return printf("%s %s %s %s\n" ,a.name ,a.gebdat ,a.st ,a.semester);
}
char schreiben(FILE*f){
char b[0];
scanf("%s %s %s %s %c",&(a.name),&(a.gebdat),&(a.st),&(a.semester),&b[10]);
return fprintf(f,"%s %s %s %s" ,a.name ,a.gebdat ,a.st ,a.semester);
}
int _tmain(int argc, _TCHAR* argv[])
{
//TStud a;
//FILE *f;
f=fopen("Stud.txt","a+");
while(!feof(f)){
a=lesen(f);
}
char b[10]="0";
while(b[10]!='EOF'){
schreiben(f);
}
fclose (f);
[C-CODE]
