Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我按键时,阅读文本文件中的每一行?C程序设计_C_File_Key - Fatal编程技术网

当我按键时,阅读文本文件中的每一行?C程序设计

当我按键时,阅读文本文件中的每一行?C程序设计,c,file,key,C,File,Key,我知道如何在while循环中使用fgets来读取整个文本文件,但我如何才能在该循环中按下一个键,使其读取另一行,一次读取一行 我尝试了一个简单的printf(“按任意键”)getchar(),但什么也没发生,我运行程序,它什么也没做,甚至没有显示第一行。我认为这可能是一个愚蠢的问题,但我找不到如何做到这一点:( 以下是我尝试过的: /* gcc readline.c -Wall -o read */ #include <stdio.h> //#include <stdlib

我知道如何在while循环中使用fgets来读取整个文本文件,但我如何才能在该循环中按下一个键,使其读取另一行,一次读取一行

我尝试了一个简单的printf(“按任意键”)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;
}
/*gcc readline.c-Wall-o read*/
#包括
//#包括
int main(int argc,char*argv[]){
字符url[]=“dbus.log”;
文件*arq;
字符信息[1000];
arq=fopen(url,“r”);
while(fgets(info,sizeof(info),arq)!=NULL){
printf(“%s”,信息);
printf(“按任意键继续\n”);
getchar();
}
fclose(arq);
返回0;
}

程序没有显示提示,因为stdio已缓冲,而您没有刷新。请使用fflush(stdout);以确保生成缓冲输出

像这样:

fflush(stdout);
getchar();

另外请注意,默认情况下,stdin处于“cooked”IO模式。按enter键将生成一个字符,但在按enter键之前,其他字符将被缓冲。

对不起,您的意思是什么?不是getchar()也应该使用enter键吗?它可以是任何键me@user3121023同样的结果,不起作用here@ryykerdbus.log在同一个目录中,由于某些原因,它不会在每次按键时读取一行,它只是在读取任何内容之前“冻结”终端,如果我注释('/')printf(“按任意键继续\n”);'和“getchar()它向我显示了终端上的全部文本,但当我尝试使用getchar时,我没有成功谢谢你的回答并向我解释@Art Yerkes!:D