【发布时间】:2014-04-05 21:48:04
【问题描述】:
#include <stdio.h>
#include <stdlib.h>
FILE * fptr;
struct invStruct
{
int frame;
float elec;
float vdw;
float total;
};
int main()
{
int i;
fptr = fopen("/Users/jmindrebo/C_programming/structuretest.txt", "r");
if(fptr == 0){
printf("file not found\n");
exit(1);
}
struct invStruct item[4000] = {0};
for (i=0; i<1; i++)
{
scanf(fptr, "%d\t%.4f\t%.4f\t%4.f", &item[i].frame, item[i].elec, item[i].vdw, item[i].total);
printf("%s\t%.4f\t%.4f\t%4.f", item[i].frame, item[i].elec, item[i].vdw, item[i].total);
}
fclose(fptr);
return 0;
}
我对编码比较陌生,上周我才开始学习 C,所以这是迄今为止我能想到的最好的。我正在尝试将此制表符分隔的文本文件读入一个结构中,以便可以在某些计算中使用这些值。我在将文本文件的值加载到 2D 数组时遇到了麻烦,所以我认为这会更容易,同时仍然可以很好地工作。
我不断收到的错误是: /usr/include/stdio.h:274:6:注意:预期为“const char *”,但参数类型为“struct FILE *”
我已经在网上阅读了一两个小时,但我仍然没有弄清楚问题所在。任何帮助将不胜感激!
【问题讨论】:
-
第 274 行将是
scanf行,因此当您看到有关错误参数类型的错误时,首先要做的是检查scanf的文档(或跳至其声明在您的 IDE 中)并查看您的参数是否与预期的类型匹配。
标签: c