我必须编写一个代码来打开一个用户定义的txt文件并将文件中的数据读入一个数组并返回数组中的数据点数,这是我到目前为止...
float readdata(char file[30]);
int main(void)
{
char filename[30];
printf("Enter file name:");
scanf("%s", filename);
printf("%s\n", filename);
readdata(filename);
return 0;
}
float readdata(char file[30])
{
FILE *fp;
int i,n;
float x, y, sigma1, sigma2, myarray[1000][4];
n=0;
fp=fopen(file, "r");
if (fp!=NULL)
{
printf("file not found");
}
else
{
for(i=0; !feof(fp); ++i)
{
fscanf(fp, "%f%f %f%f", &x, &y ,&sigma1, &sigma2);
myarray[i][0]=x;
myarray[i][1]=y;
myarray[i][2]=sigma1;
myarray[i][3]=sigma2;
++n;
}
fclose(fp);
}
return myarray[1000][3];
当我运行它时它只是说(lldb)。不确定那是什么意思。它也找不到我输入的文件,即使它保存在同一文件夹中的main.c旁边。
任何建议都会非常感谢,谢谢。
答案 0 :(得分:3)
您的if
条件错误
应该是
if (fp==NULL)
{
printf("file not found");
return;
}
else
{
// read data from file
}
答案 1 :(得分:1)
符合操作系统要求是个好主意。如果您在Windows下,最好的做法是使用AppData文件夹。如果你在* nix下,请使用home dir(〜)。
另一个好主意是将文件名作为命令行参数放置,以便用户可以使用所需文件运行程序和/或创建自定义UI作为此命令行程序的包装。