我一直在研究这段代码,但我无法找出问题所在。该程序确实可以编译并运行,但最终会出现致命错误。
该程序读取一个文件并收集数字以计算总数(在将它们转换为浮点数之后)。然后它读取文件并显示小于 10.00 的文件
我有一个名为 myFile.txt 的文件,其内容如下:
詹姆斯----- 07.50 安东尼--- 17.00
所以显示应该是
- 总数为 24.50
- 这是小于 10.00 的那个:
- 詹姆斯 07.50
这是代码:
int main()
{
int n =2, valueTest=0,count=0;
FILE* file = NULL;
float temp= 00.00f, average= 00.00f, flTen = 10.00f;
float *totalNote = (float*)malloc(n*sizeof(float));
int position = 0;
char selectionNote[5+1], nameBuffer[10+1], noteBuffer[5+1];
file = fopen("c:\\myFile.txt","r");
fseek(file,10,SEEK_SET);
while(valueTest<2)
{
fscanf(file,"%5s",&selectionNote);
temp = atof(selectionNote);
totalNote[position]= temp;
position++;
valeurTest++;
}
for(int counter=0;counter<2;counter++)
{
average += totalNote[counter];
}
printf("The total is : %f \n",average);
rewind(file);
printf("here is the one with less than 10.00 :\n");
while(count<2)
{
fscanf(file,"%10s",&nameBuffer);
fseek(file,10,SEEK_SET);
fscanf(file,"%5s",¬eBuffer);
temp = atof(noteBuffer);
if(temp<flTen)
{
printf("%s who has %f\n",nameBuffer,temp);
}
fseek(file,1,SEEK_SET);
count++;
}
fclose(file);
}
我对 c 很陌生,发现它比 c# 或 java 更难。我想得到一些建议来帮助我变得更好。我认为这段代码可能更简单。你也这么认为吗?