我是C的完全菜鸟,我想知道为什么如果我接受用户输入为什么它不会找到该文件但是当我使用硬编码时:
const char * fn = "/Users/james/Documents/test.rtf";
似乎工作正常?
char text[100];
fputs("File location: ", stdout);
fflush(stdout);
fgets(text, sizeof text, stdin);
FILE *fp = fopen(text,"r");
if( fp ) {
printf("\nFile Exists");
fclose(fp);
} else {
printf("\nFiles doesn't exist");
}
任何帮助都会很棒,或只是指向一些我无法找到的在线资源。 :)
答案 0 :(得分:5)
fgets
读取一行并保留最终的换行符。你必须通过
text[strlen(text) - 1] = '\0';
(当然,在做了正确的错误检查之后。)
答案 1 :(得分:0)
您可以使用access()来检查文件是否存在 要进行访问,您需要提供文件和模式的路径。
访问原型是 int access(const char * pathname,int mode);
如果文件存在,access()将返回零。
有关详细信息,请访问:http://linux.die.net/man/2/access