C:
#include <stdio.h>
#include<stdlib.h>
typedef unsigned char BYTE;
struct tDatenStudent
{
unsigned int Nr;
char Nachname[20];
char Vorname[20];
unsigned int MatNr;
};
int main (void)
{
FILE *datei;
tDatenStudent tds; //Du brachst eine Instanz, wo du die Werte tatsächlich speicherst.
datei = fopen ("test.txt", "r");
if (datei != NULL)
{
fscanf(datei,"%d %s %s %d", &tds.Nr,&tds.Nachname,&tds.Vorname,&tds.MatNr);
printf("%s\n",datei);
fclose (datei);
}
return 0;
}
Erklärung: Du deklarierst den Typ tDatenStudent, der 4 + 20 + 20 + 4 Bytes = 48 Bytes gross ist. Doch diese 48 Bytes gehören dir nicht. Du sagst nur, dass tDatenStudent als Typ so viel Platz braucht. Mit der tds-Variable sagst du dem Compiler: tds ist meine Variable, und die soll bitte 48 Bytes gross sein. Und erst dann kannst du darin Werte speichern.
Gruss
cwriter
Zuletzt bearbeitet: