dragonabllz
Ensign
- Registriert
- Mai 2011
- Beiträge
- 254
Hi,
ich möchte aus einer .txt Datei Zahlen auslesen und ausgeben.
In der TextDatei steht sowas in der Art:
"78:89
89:1
usw..."
Also in jeder Zeile "Zahl:Zahl"!
Natürlich möchte ich auch Fehlerabfangen, wenn da z.b. statt "1:2" sowas wie "1:A" steht.
Ich habe es bislang so ausprobiert:
Ich dachte wenn ich bei fscanf einfach ein "%d:%d" mache dann nimmt der keine Fehler an wie "1:A", also keine "Int:Char". Aber er macht es trotzdem und gibt irgendwelche großen Zahlen aus. Weshalb? Was kann ich da machen?
ich möchte aus einer .txt Datei Zahlen auslesen und ausgeben.
In der TextDatei steht sowas in der Art:
"78:89
89:1
usw..."
Also in jeder Zeile "Zahl:Zahl"!
Natürlich möchte ich auch Fehlerabfangen, wenn da z.b. statt "1:2" sowas wie "1:A" steht.
Ich habe es bislang so ausprobiert:
Code:
FILE *fp;
char *fn = "/cygdrive/c/Users/Hallo/Desktop/Neues_Textdokument.txt";
int test(){
int anzahl, zahl, zahl2;
if((fp = fopen(fn,"r+")) == NULL){
fprintf(stderr,"Datei '%s' konnte nicht zum Lesen und Schreiben geöffnet werden!\n",fn);
return 1;
}
if((anzahl = fscanf(fp,"%d:%d",&zahl,&zahl2)) == EOF){
fprintf(stderr,"Konnte nicht aus '%s' lesen!\n",fn);
return 2;
}
else
if(anzahl == 0){
fprintf(stderr,"Konnte keine Zahl aus '%s' lesen!\n",fn);
return 3;
}
fclose(fp);
printf("Die Zahl in der Datei '%s' lautet %d:%d",fn,zahl,zahl2);
return 0;
}
Ich dachte wenn ich bei fscanf einfach ein "%d:%d" mache dann nimmt der keine Fehler an wie "1:A", also keine "Int:Char". Aber er macht es trotzdem und gibt irgendwelche großen Zahlen aus. Weshalb? Was kann ich da machen?