#include<stdlib.h>
int main (void)
{
char ch;
FILE *fp;
char fname[20];
printf("enter the file name:");
scanf("%s",fname);
fp = fopen(fname,"r");
if(fp == NULL)
{
printf("Fail to open file\n");
exit(1);
}
while((ch = getc(fp)) != EOF)
putchar(ch);
fclose(fp);
return 0;
}
就像这个程序,我想打开一个文件,但是总是显示打开失败
11 个解决方案
#1
﹉windows的路径是双斜杠
c:\\a.txt
c:\\a.txt
#2
﹉windows的路径是双斜杠
c:\\a.txt
c:\\a.txt
#3
程序当前目录下.
如果是在 VC 里面运行的, 这个目录是工程的目录. 如果是双击 exe 运行的, 这个目录就是 exe 所在的目录.
如果是在 VC 里面运行的, 这个目录是工程的目录. 如果是双击 exe 运行的, 这个目录就是 exe 所在的目录.
#4
全路径或者绝对路径
#5
//fp = fopen(fname,"r");
fp = fopen(”文件路径“,"r+");
#6
windows下.放在该工程目录下的debug目录即可.
linux下.只要放在源代码目录下就可以了.
linux下.只要放在源代码目录下就可以了.
#7
fp = fopen(”文件路径“,"r+");
windows:文件路径形式为 X:\\xx.txt
linux:文件路径形式为 dir/xx.txt 或者../../xx.txt 之类
windows:文件路径形式为 X:\\xx.txt
linux:文件路径形式为 dir/xx.txt 或者../../xx.txt 之类
#8
作为输入只要输入一个反斜杠吧?
#9
linux和windows下均测试通过啊,LZ是文件路径输错了吧。。
如果用相对路径,那一般是可执行文件那个目录下,
如果用绝对路径那就比较好。
如果用相对路径,那一般是可执行文件那个目录下,
如果用绝对路径那就比较好。
#10
这样写会不会出现问题?
你应该指定一个路径,用粘连的方法
你应该指定一个路径,用粘连的方法
#11
打开失败的原因是文件不存在吧。建议你若打开失败,打印一下出错原因:
别忘了添加头文件:#include <string.h>和#include <errno.h>
fprintf(stderr, "open file error: %s", strerror(errno));
别忘了添加头文件:#include <string.h>和#include <errno.h>
#1
﹉windows的路径是双斜杠
c:\\a.txt
c:\\a.txt
#2
﹉windows的路径是双斜杠
c:\\a.txt
c:\\a.txt
#3
程序当前目录下.
如果是在 VC 里面运行的, 这个目录是工程的目录. 如果是双击 exe 运行的, 这个目录就是 exe 所在的目录.
如果是在 VC 里面运行的, 这个目录是工程的目录. 如果是双击 exe 运行的, 这个目录就是 exe 所在的目录.
#4
全路径或者绝对路径
#5
//fp = fopen(fname,"r");
fp = fopen(”文件路径“,"r+");
#6
windows下.放在该工程目录下的debug目录即可.
linux下.只要放在源代码目录下就可以了.
linux下.只要放在源代码目录下就可以了.
#7
fp = fopen(”文件路径“,"r+");
windows:文件路径形式为 X:\\xx.txt
linux:文件路径形式为 dir/xx.txt 或者../../xx.txt 之类
windows:文件路径形式为 X:\\xx.txt
linux:文件路径形式为 dir/xx.txt 或者../../xx.txt 之类
#8
作为输入只要输入一个反斜杠吧?
#9
linux和windows下均测试通过啊,LZ是文件路径输错了吧。。
如果用相对路径,那一般是可执行文件那个目录下,
如果用绝对路径那就比较好。
如果用相对路径,那一般是可执行文件那个目录下,
如果用绝对路径那就比较好。
#10
这样写会不会出现问题?
你应该指定一个路径,用粘连的方法
你应该指定一个路径,用粘连的方法
#11
打开失败的原因是文件不存在吧。建议你若打开失败,打印一下出错原因:
别忘了添加头文件:#include <string.h>和#include <errno.h>
fprintf(stderr, "open file error: %s", strerror(errno));
别忘了添加头文件:#include <string.h>和#include <errno.h>