Problem mit fscanf
-
Frag mit input != NULL ab, ob die Datei überhaupt geöffnet ist und gibt mit perror() dann evtl. die entsprechende Fehlermeldung aus.
L. G.
Steffo
-
Hallo,
also bei mir kompiliert das Programm ohne Warnungen und Fehler.
(OpenBSD Compiler: gcc).
Allerdings bekommst du nur den ersten Wert ausgegeben.
Um alle Werte zu bekommen, bräuchtest du ein Array und eine Schleife.Wenn du bei fopen() den Pfad nicht angibst, muss die Datei im aktuellen Verzeichnis liegen.
Grüße
-
gigg schrieb:
also bei mir kompiliert das Programm ohne Warnungen und Fehler.
(OpenBSD Compiler: gcc).Suggeriere ihm bitte nicht, dass sein Code ok wäre, das ist er nämlich nicht. Weshalb, wurde hier schon erörtert.
-
Steffo schrieb:
gigg schrieb:
also bei mir kompiliert das Programm ohne Warnungen und Fehler.
(OpenBSD Compiler: gcc).Suggeriere ihm bitte nicht, dass sein Code ok wäre, das ist er nämlich nicht. Weshalb, wurde hier schon erörtert.
Sorry, das wollte ich nicht. Der Code ist nicht ok.
Es wurde ja bereits auf die Schwachstellen hingewiesen.
Aber er kompiliert bei mir ohne Segmentation fault.
-
gigg schrieb:
Aber er kompiliert bei mir ohne Segmentation fault.
wo sollte auch beim kompilieren ein segmentation fault entstehen?
-
vario-500 schrieb:
gigg schrieb:
Aber er kompiliert bei mir ohne Segmentation fault.
wo sollte auch beim kompilieren ein segmentation fault entstehen?
Das musst du den Threadstarter fragen.
Das war die Ausgangsfrage.
-
vario-500 schrieb:
gigg schrieb:
Aber er kompiliert bei mir ohne Segmentation fault.
wo sollte auch beim kompilieren ein segmentation fault entstehen?
Ganz einfach: Wenn der Pfad nicht stimmt oder die Datei nicht existiert, dann zeigt input auf NULL und wenn man NULL-Pointer dereferenziert...
Da bringt das Einschalten der Warnings auch nichts.
-
gigg schrieb:
Aber er kompiliert bei mir ohne Segmentation fault.
Das Problem ist ja nicht das Kompilieren, sondern das Ausführen.
-
Steffo schrieb:
Das Problem ist ja nicht das Kompilieren, sondern das Ausführen.
Ja, mein Fehler. Ich meinte die Ausführung (ohne segfault).
-
FILE* input; input = fopen("ergebnis_gew","r"); //fehler meldung if (input== NULL) { printf("Daten kann nicht geoeffnet werden\n");//du hast das vergessen return(0); } int n; fscanf (input,"%d",&n); /*"%d" integer zahl "%i" auch integer zahl aber man benutzt nicht die beide in selben Programm*/ printf("Halllo %i",n);
Das, das du geschrieben hast, funktioniert
aber man braucht eine FOR_SCHLEIFE, um alle Zahlen aus Datei einzulesen
und Natürlich muss die Zahlen in einem Array reingepackt werden.