[英]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.