2017-12-14 22 views
2

変数の答えを出力すると、それにはいくつかの奇妙な文字が含まれています。理由は何でしょうか?fgetcを使ってファイルから読み込む際に奇妙な文字が返される

int flag=0; 
char answer[512]; 
char a[2]; 
a[1]='\0'; 

int c; 
int status=1; 
do { 
     c = fgetc(pp); 
     if(feof(pp)) { 
     break ; 
     } 
     if(c=='F' || status==0){ 
       a[0]=(char)c; 
       strcat(answer,a); 
       status=0; 
     } 
    } while(TRUE); 
+1

おそらく、ファイルに異常な文字が含まれている可能性があります。 –

+1

'answer [0] = 0'を設定してください。 – MFisherKDX

答えて

2

strcat先文字列が有効であることを期待 - それはnullで終了しなければならないことを意味します。 answer文字列を明示的にNULLで終了していません。ループの前にanswer[0]=0を追加してください。

+0

@chux。私はOPに 'a [1] = 0'が正しいと思います。しかし、 'answer [0] = 0'を見逃しました。 – MFisherKDX

+0

はい、コメントは削除されました。 – chux

+0

あなたの提案が修正された@MFisherKDXに感謝します。したがって、空の文字列でも0で終了する必要があります。 – Tosh

関連する問題