2017-03-17 1 views
-2

Ich kann nicht richtig sehen, was mit diesem Code falsch ist, ich bekomme immer einen Segmentierungsfehler: 11, wenn es ausgeführt wird.Versuchen, Zahlen aus einer Datei zu lesen, aber immer einen Segmentierungsfehler erhalten: 11.-C

#include <stdio.h> 
#include <stdlib.h> 
int main() 
{ 
    int a=0; 
    int sum=0; 
    FILE* filein=fopen("input(1).txt", "r"); 
    while(fscanf(filein, "%d", &a) > 0) 
    { 
     sum+=a; 
    } 
    fprintf(filein, "Sum = %d\n", sum); 
    fclose(filein); 
    return 0; 
} 

Vielen Dank!

+0

Chek dass 'filein' ist nicht' NULL', auch, sollte es sein 'fscanf (filein, "% d", & a) == 1)', nicht '> 1 ' –

+3

Auch Sie öffnen 'filein' zum Lesen, schreiben aber später darauf. –

+0

Sicher willst du die Summe in die Datei schreiben und nicht einfach auf stdout drucken? – Olaf

Antwort

-1

Fügen Sie dies Ihrem Code hinzu, nachdem Sie Ihre Datei geladen haben. Wenn es nie in die if-Anweisung springt, wird Ihre Datei nicht gefunden oder geladen.

if (filein != NULL) // Checks if the file was loaded. 
{ 
    while (fscanf(filein, "%d", &a) > 0) 
    { 
     sum += a; 
    } 
    printf("Sum = %d\n", sum); // prints to command window. 
    fclose(filein); 
} 
+0

Nicht sicher, warum dies abgelehnt wird? Lass mich wissen warum. Dies war meine erste Antwort und ich versuche nur zu helfen. –

+0

Ich weiß nicht, warum wir hier runter gehen. Das heißt, danke dafür! Ich denke, ich habe es jetzt herausgefunden, aber wenn ich das als Referenz verwende. – ohhimark

Verwandte Themen