[英]reading data from a file into an array error in C
我正在尝试使用行program < file.txt
通过终端从命令提示符中指定的文件中读取文件,然后再次打印以检查其是否有效。 我收到错误Segmentation fault: 11
,我不确定文件是否在程序中正确打开。
到目前为止,这是代码:
#define MAX 1000
int
main(int argc, char *argv[]) {
FILE *fp;
double values[MAX];
fp = fopen(argv[1], "r");
fscanf(fp, "%lf", values);
printf("%f\n", *values);
fclose(fp);
return 0;
}
任何帮助或反馈将不胜感激。
您应该像这样执行程序
./program file.txt
我不确定我的文件是否在程序中正确打开
然后,您应该对其进行真正的测试,因为fopen
返回NULL
,因此您会遇到段错误。
#include <stdio.h>
#define MAX 1000
int
main(int argc, char *argv[]) {
FILE *fp;
double values[MAX];
fp = fopen(argv[1], "r");
if (!fp) {
printf("Invalid file name \n");
return -1;
}
fscanf(fp, "%lf", values);
printf("%f\n", *values);
fclose(fp);
return 0;
}
fopen
为NULL
是因为您以错误的方式调用程序, <
和>
是重定向,可能有用,但在这种情况下不是您要尝试的操作,正确的调用方法是简单地将其传递给直接争论。
./program input.file
是的,可以:1)检查您调用它的方式,即
2)(我不确定):检查“ file.txt”的内容是否正确。 (我认为它不会在引起分段错误的程度上产生影响,但还是要对其进行检查。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.