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函数,用于移动光标并在屏幕上显示字符;与问题无关