每当我输入文本文件供程序读取时,我总是收到消息:
Unable to open file: big_file.txt
Ending program.
我不确定程序的哪个部分无法正常工作。我假设它是main()或validate_input()函数中的东西:
FILE* validate_input(int argc, char* argv[]){
FILE* fp = NULL;
if(argc < 2){
printf("Not enough arguments entered.\nEnding program.\n");
exit(0);
}
else if(argc > 2){
printf("Too many arguments entered.\nEnding program.\n");
exit(0);
}
fp = fopen(argv[1], "r");
if(fp == NULL){
printf("Unable to open file: %s\nEnding program.\n", argv[1]);
exit(0);
}
return fp;
}
int main(int argc, char* argv[]){
char** lines = NULL;
int num_lines = 0;
FILE* fp = validate_input(argc, argv);
read_lines(fp, &lines, &num_lines);
print_lines(lines, num_lines);
free_lines(lines, num_lines);
fclose(fp);
return 0;
}
我希望程序输出给定文本的每一行,并在每行的前面加上一个数字,但是每次输入文件时,它声称它无法读取。
更新:
当我添加fprintf(stderr, "Unable to open file %s: %s\n", argv[1], strerror(errno));
我的输出是:
Unable to open file big_file.txt: No such file or directory
但是文件在我的桌面上。