gpt4 book ai didi

C 文件 I/O,使用 TXT 文件

转载 作者:太空宇宙 更新时间:2023-11-04 01:04:25 29 4
gpt4 key购买 nike

我刚学C语言,在实现一个程序时遇到了问题将 test.txt 文件作为程序的输入。

test.txt 文件的内容是:

1 30 30 40 50 60
2 40 30 50 60 60
3 30 20 10 20 30
4 40 20 10 10 30
5 20 10 10 10 30

我想得到每个学生的平均分数 1~5。

所以我实现如下:

while(cnt)      //I set cnt 5 to repeat it for 5 times                     
{

fseek(fp, 2, SEEK_CUR); //to ignore index number in first + blank
acc=0; //clear data in acc
while(1)
{
score=fgetc(fp);

if(score==' ')
fseek(fp, 1, SEEK_CUR); // if it is black then ignore and move
else if(score=='\n') // if I meet enter then break
break;
else
{
acc+=score; //get total score of a student
}
}
cnt--;

printf("%d ", acc/5); //get average score and print
}

但是程序的结果是

58
58
58
58

我不知道怎么回事......

它们必须是程序的 5 个输出,因为那里有 5 个学生

但它只给出了 4 个学生的平均分数,所有输出都相同..

最佳答案

您的代码存在一些问题。其中:

  • 您正在使用 fgetc 读取字符,一次一个字符时间。如果你想读一本,这对分数“50”不起作用一次得分。
  • 您直接使用“fgetc”的结果作为数字。这是错误:fgetc 将返回字符代码,而不是数字。所以如果你有 ASCII,当 fgetc 读取 1 时,它将返回 49。

我建议您尝试使用 fscanf("%d", ..) 代替。

关于C 文件 I/O,使用 TXT 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27442107/

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