2016-09-02 8 views
1

whileループ内でfgetsを使ってテキストファイル全体を読む方法は分かっていますが、そのループ内のキーを押して、別の行を一度に1行ずつ読み込む方法はありますか?キーを押すとテキストファイルの各行を読み込みますか? Cプログラミング

私は単純なprintf( "任意のキーを押し\ n")getchar()を試しましたが、何も起こりません、私はプログラムを実行し、何もしません。私は、これは愚かな質問かもしれと仮定しているが、私はこれを行う方法を見つけることができません:(

ここで私が試したものです:

/* gcc readline.c -Wall -o read */ 

#include <stdio.h> 
//#include <stdlib.h> 

int main (int argc, char *argv[]) { 

    char url[]="dbus.log"; 
    FILE *arq; 
    char info[1000]; 

    arq = fopen(url, "r"); 

    while (fgets(info, sizeof(info), arq) != NULL) {   
     printf("%s", info); 
     printf("Press Any Key to Continue\n"); 
     getchar(); 
    } 

    fclose(arq); 
    return 0; 
} 
+0

私は申し訳ありませんが、それはどういう意味ですか?また、getchar()もenterと一緒に作業するはずですか? – nightk

+0

それは私のためのすべての鍵でもかまいません – nightk

+0

@ user3121023同じ結果がここにありません – nightk

答えて

2

プログラムがためのプロンプトが表示されません標準入出力をバッファリングされ、あなたは紅潮していないにfflush(stdoutを)を使用し、バッファ出力が生成されることを保証するために、このよう

を:。。

fflush(stdout); 
getchar(); 

はまた、デフォルトの標準入力で「調理」IOであることに注意してくださいモードを押す。 enterは文字を生成しますが、enterを押すまで他の文字はバッファリングされます。

+0

ああ私は見る!今はうまくいきます! – nightk

+0

答えをくれてありがとう、それを私に説明する@Art Yerkes! :D – nightk

関連する問題