gpt4 book ai didi

c - 如何读取文件、获取数据和计算

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

我正在读一本书,但我无法理解这个试试看:(它是非英语的,所以我翻译了它)

写一个程序,要求n个学生,选择n个学生(动态方式),名字是10个字符,笔记是5个字符

根据上面的选择创建一个文本文件 note.txt 并附加连字符以达到 10 个字符(用于名称)。

然后读取文件并(仅)从中计算总数。然后显示音符不大于10的人的名字和音符。

您必须实现 3 个函数:createStudent、createFile 和 readFile,并且不能使用全局变量。

语法:名称必须声明为 char nom[10+1](即 James,然后将添加 5 个连字符以获得 10 个字符)=> james----- 并注意:char[5+1 ](即 15.00 或 07.50)

Tips : 要将笔记从文本格式转换为 float 格式,可以使用 atof 函数

我创建了 createStudent 和 createFile 函数。它们运行良好,但我无法弄清楚最后一部分(readFile 函数)。

我的文本文件有这个形状:Bart------ 04.50 Lisa------ 18.00 Homer------ 03.00

void readFile(int n){
FILE* file = NULL;
double temp= 0.0, average= 0.0;
double *total = (double*)malloc(n*sizeof(double));

int position = 0;
char information[5+1]="";

file = fopen("c:\\myFile.txt","r");
fseek(file,10,SEEK_SET);
while(fgetc(file) != EOF)
{
fscanf(file,"%5s",&information);
temp = atof(information);
total[position]= temp;

position++;

fflush(stdin);
fseek(file,11,SEEK_CUR);
}
fclose(file);
for(int compteur=0;compteur<2;compteur++)
{
moyenne += totalNote[compteur];
}

它编译但不工作,我不明白为什么 :(感觉C语言和java、c#比起来简直是蛋疼

你能给我点灯吗?

最佳答案

看起来您的输入文件包含“”形式的行。如果每行总是有固定数量的字符串/数字,您可以简单地使用 fscanf (例如 fscanf(file, "%*s %f %*s %f %*s %f ", &number1, &number2, &number3);).

另一方面,如果每行可以有任意数量的字符串/数字对,则应该查看 strtok 函数。

关于c - 如何读取文件、获取数据和计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4545188/

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