在最后一个单词后打印一个数字

时间:2021-01-01 11:56:08

标签: arrays c text-files

while(!feof(fp)) {
  printf("\n %s %s %s", post.name, post.lastnamn, post.clubb);
  for(i = 1; i <= x; i++;)
  {
    printf(" %d", j.number[i]);
  }
  fread(&post, sizeof(postTyp), 1, fp);
}

我创建了两个 typedef struct,我用 post 和 j 来指代它们。

我创建了一个程序,要求输入用户名、姓氏和俱乐部,并将其存储在一个文本文件中。我还创建了一个程序,该程序在数组 x 中创建 number[i] 数量的数字并将其保存在文本文件中。 x 计算您运行程序以创建姓名、姓氏和俱乐部的次数。因此,如果您运行该程序 3 次,将创建 3 个数字,如下面的示例

所以当我打印它时,我得到了这个

Hanna Svensson FCB 1 2 3
Fabian Svensson FCB 1 2 3
Patrik Svensson FCB 1 2 3

我想要的是这样打印

Hanna Svensson FCB 1
Fabian Svensson FCB 2 
Patrik Svensson FCB 3

关于我如何完成这项工作的任何提示?

1 个答案:

答案 0 :(得分:1)

解决方案是只使用外循环而不使用内循环

i=1;
while(!feof(fp))
{
    printf("\n %s %s %s", post.name, post.lastnamn, post.clubb);
    printf(" %d", j.number[i]);
    i++;
    /* ...*/
}

注意:你的 while 循环结构非常有问题。