Daten aus einem Datei einlesen und in einem struct speichern

Mein Text-Datei sieht so aus :

1;StudentName1;Michael; 1112944729
2;StudentName2;Alexander;1112335117
3;StudentName3;Susanne;1148946464
4;StudentName4;Frank;1165465466
5;StudentName5;Christine;1154565445
 
Wikipedia hat auch geholfen :=)

ich habe es so gemacht und hat geklappt
C++:
#include <stdio.h>
#include<stdlib.h>
 
 typedef unsigned char BYTE;
 
typedef struct
{
    unsigned int Nr;
    char Nachname[20];
    char Vorname[20];
    unsigned int MatNr;
}tDatenStudent;
 
 
int main (void)
{
	int c;
  FILE *datei;
  
  tDatenStudent tds;   
 
  datei = fopen ("test.txt", "r");
  if (datei != NULL)
  {
  	 while( (c=fgetc(datei)) != EOF)
         putchar(c);
   }
   else {
      printf("Konnte Datei nicht finden bzw. öffnen!\n");
   }
   
  fscanf(datei,"%d %s %s %d", &tds.Nr,&tds.Nachname,&tds.Vorname,&tds.MatNr);
  
   printf("%d %s %s %d", tds.Nr,tds.Nachname,tds.Vorname,tds.MatNr);
   fclose (datei);

  return 0;
}

danke dir trozdem

die Aufgabe ist noch lang aber ich versuche es erst alleine ..wenn ich aufgabe melde ich mich xD
 
Ähm... Du weisst aber schon, dass du gar nichts in dein struct einliest, sondern einfach den Inhalt der Datei ausgibst, oder?
C:
while(fscanf(datei,"%d;%s;%s;%d",&tds.Nr,&tds.Nachname,&tds.Vorname,&tds.MatNr) != EOF)
{
    printf("%d %s %s %d", tds.Nr,tds.Nachname,tds.Vorname,tds.MatNr);
}
So wäre es besser.

Gruss
cwriter
 
Und so
C:
while(fscanf(datei,"%d;%s;%s;%d",&tds.Nr,&tds.Nachname,&tds.Vorname,&tds.MatNr) == 4)
{
    printf("%d %s %s %d", tds.Nr,tds.Nachname,tds.Vorname,tds.MatNr);
}
wäre es noch besser. Da damit wenigstens sichergestellt ist, das alle Daten eingelesen wurden.

Noch besserer wäre es wirklich zeilenweise einzulesen (fgets) und die Zeile dann mit sscanf zu verarbeiten.
 

Neue Beiträge

Zurück