2017-03-17 2 views
-2

このコードで何が間違っているか分かりませんが、セグメンテーションフォルトが発生しています。ファイルから数値を読み取ろうとしてもセグメンテーションエラーが発生する: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; 
} 

ありがとうございます!

+0

チェク、ない '> 1 ' –

+3

、 'filein'を読み込みますが、後でそれを書きます。 –

+0

確かに、ファイルに合計を書いて、単純にstdoutに出力しないのですか? – Olaf

答えて

-1

ファイルにロードした後にこれをコードに追加します。 if文にジャンプしないと、ファイルが見つからないか、ロードされません。あなたが開く。また `filein`は` NULL`ではない、また、それは ``関数fscanf(filein、 "%dの"、&a)は== 1)であることを

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

これがなぜ投票されていないのか分かりませんか?理由を教えてください。これは私の最初の答えでした。私はただ助けようとしています。 –

+0

なぜ私たちはここで下降しているのか分かりません。それは、ありがとう!私はそれが今考え出されたと思うが、もし私がそれを参考にするならば。 – ohhimark

関連する問題