我正在尝试让用户输入特定的文件名,并让程序能够阅读它。
FILE *fp;
char file[10];
fgets(file, sizeof(file), stdin);
fp = fopen(file, "r");
if (fp == NULL) {
printf("File doesn't open\n");
return 1;
}
这是我的代码的一部分以及我目前正在尝试做的事情。当我运行程序并输入文件名时,输出为"文件未打开"这是我的错误信息。
答案 0 :(得分:3)
答案 1 :(得分:2)
假设您的意思是fopen(file,...)
,那么在您可以执行此操作之前,您必须删除换行符的文件。请参阅fgets
和[我建议] strchr
的手册页。
答案 2 :(得分:1)
使用perror
打印系统错误诊断:
int main(){
FILE *fp;
char file[10];
fgets(file, sizeof(file), stdin);
fp = fopen(file, "r");
if (!fp) {
perror(file);
return 1;
}
}
如果您要求提供档案f
,则会打印:
f
: No such file or directory
应该指出问题的根源(例如,fopen
调用也可能因权限原因而失败。)