gpt4 book ai didi

c - 简单读取文件查询

转载 作者:行者123 更新时间:2023-11-30 17:42:57 26 4
gpt4 key购买 nike

我尝试一次打印 24 行随机文本文件,并在每次打印之间等待按 Enter 键。然而我的检查只发生在第一次,所以前 24 个被打印,它等待输入按键然后打印其余的而不再次执行检查。有什么想法吗?

#include<stdio.h>

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

FILE *mystream;
char mystring[100];
int nullcount =0;
int key;

if(argc<2){
printf("Please provide a filename as an input\n");
}
else{

mystream = fopen(argv[1], "r"); //open the file for writing

if(mystream !=NULL){ // file steam pointer should n't be NULL if everything worked...

while( fgets(mystring,100, mystream) !=NULL )
{
printf("%s", mystring);
printf("%d", nullcount);
nullcount++;
if(nullcount==24)
{
nullcount = 0;
while(key !='\n')
{
key=getchar();
if(key=='q') return 0;
}
}
}
fclose(mystream); // close the file
}
else{
printf("something went wrong trying to open the file\n");

}
}
return 0;
}

最佳答案

你有这个while循环:

while(key !='\n')
{
key=getchar();
if(key=='q') return 0;
}

用户按下 Enter 后,key 将等于 '\n' 并且 while 循环将按预期停止。但下次到达这部分时,key仍然是'\n',因此永远不会再次进入while循环并且getchar() 不会被调用。

您应该将其更改为 do {...} while 循环,以便循环体至少执行一次。

关于c - 简单读取文件查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20357633/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com