2017-02-01 6 views
-1

ファイルを読み込み、ファイルの内容を画面に表示する短いプログラムを作成しました。以下はコードのスニペットです。論理的なエラーがあります。プログラムはコンパイルして何も画面に表示しません。私の思考プロセスは読み込まれ、文字だけが印刷され、カンマでスキップされました。ファイルの内容を読み取る

Eg file   
    A,1 
    B,2 

    Eg output 
    A 1 
    B 2 

    char = str; 
    while(fscanf(fpointer, "%c", &str) == 1) 
    { 
      while((str=getchar()) != ',') 
        printf("%c",str); 
    } 
+2

"論理エラーがあります"。あなたが観察している間違った行動を教えてもらえますか? – kaylum

+0

右。私は投稿を更新しました。プログラムは何も出していません。 – mac

+0

['getchar'](https://linux.die.net/man/3/getchar)の動作を確認するためにmanページを読んだことがありますか?それを読んでいると、どこから読んでいると思いますか? – kaylum

答えて

1

最初のwhileステートメントは正しいです。ただし、while文ではgetcharを使用しないでください。これは、ユーザーが文字を入力するのを待ちます(スクリーンには何も印刷されていません)。代わりにこのメソッドを試してください。

 while(fscanf(f, "%c", &str) == 1) 
     { 
       //while((str=getchar()) != ',') 
      if(str==',') 
      { 
         printf(" "); 
      } 
      else 
      { 
       printf("%c",str); 
      } 
     } 
関連する問題