首页 > 解决方案 > 在最后一个单词后打印一个数字

问题描述

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 结构,我用 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

关于如何实现这一点的任何提示?

标签: arraysctext-files

解决方案


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

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

请注意:您的 while 循环构造非常值得商榷。


推荐阅读