当我按下一个键时读取文本文件中的每一行?C编程



我知道如何在while循环中使用fgets来读取整个文本文件,但是我如何在该循环中按下一个键,以便它将读取另一行,一次一个?

我尝试了一个简单的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 Continuen");  
        getchar();   
    }
    fclose(arq);
    return 0;
}

程序没有显示提示,因为stdio被缓冲,您没有刷新。使用。fflush (stdout);

:

fflush(stdout);
getchar();

还请注意,默认情况下stdin处于"cooked" IO模式。按回车键将产生一个字符,但其他字符将被缓冲,直到按回车键。

最新更新