C 手动连续循环
我有一个文件,其中每行由一些单词和一个数字组成。我想读文件,一行一行,只显示单词。然后,程序应该等待按键,并在某个键上显示数字,然后在默认情况下继续下一行而不显示数字。我的问题是,我提出的唯一解决方案是在下一行显示一个数字,而不是当前的数字。这是错误的代码C 手动连续循环,c,C,我有一个文件,其中每行由一些单词和一个数字组成。我想读文件,一行一行,只显示单词。然后,程序应该等待按键,并在某个键上显示数字,然后在默认情况下继续下一行而不显示数字。我的问题是,我提出的唯一解决方案是在下一行显示一个数字,而不是当前的数字。这是错误的代码 FILE *file = fopen("randwords", "r"); if(file) { char line[64]; while(fgets(line, sizeof line, file)) {
FILE *file = fopen("randwords", "r");
if(file)
{
char line[64];
while(fgets(line, sizeof line, file))
{
ch = getch();
clear();
if(ch == 'q') break;
if(ch == 'z') s = 1;
move(LINES/2, (COLS - 20)/2);
for(i=0; i < strlen(line); i++)
{
if(!s && line[i] >= '0' && line[i] <= '9') break;
addch(line[i]);
}
s = 0;
}
fclose(file);
system("rm randwords");
}
FILE*FILE=fopen(“随机词”,“r”);
如果(文件)
{
字符行[64];
while(fgets(行、行大小、文件))
{
ch=getch();
清除();
如果(ch=‘q’)中断;
如果(ch='z')s=1;
移动(行/2,(COLS-20)/2);
对于(i=0;i 如果(!s&&line[i]>='0'&&line[i]使用ftell()和fseek()来允许您重新读取一行。您将需要一个变量来保持上一个文件位置。使用ftell()和fseek()来允许您重新读取一行。您将需要一个变量来保持上一个文件位置。这就是您正在做的:
read line
wait for key
print *full* line if key was 'z'
or print words only otherwise
请注意,您在等待键时,第一次通过循环时没有显示任何行,或者,如您所说,等待最后一次通过循环时的行
这就是你应该做的:
read line
print words only
wait for key
if key was 'z'
print rest of line
这就是你正在做的:
read line
wait for key
print *full* line if key was 'z'
or print words only otherwise
请注意,您在等待键时,第一次通过循环时没有显示任何行,或者,如您所说,等待最后一次通过循环时的行
这就是你应该做的:
read line
print words only
wait for key
if key was 'z'
print rest of line
数字是否在行尾(即数字后没有单词)?您的问题中缺少什么:行的格式,带示例,您如何输出数据(What's move()?addch()?)这些是curses函数,用于移动光标并在屏幕上显示字符;与问题无关的是行尾的数字(即数字后没有单词)?您的问题缺少什么:行的格式,带示例,您如何输出数据(What's move()?addch()?)这些是curses函数,用于移动光标并在屏幕上显示字符;与问题无关