我在d:drive中创建了一个名为abc的文本文件。我无法打开它。请告诉我该怎么做。
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
FILE *fp;
clrscr();
fp = fopen("D:/abc.txt","r");
if(fp == NULL)
{
printf("\nCannot open");
getch();
exit(1);
}
fclose(fp);
getch();
}
答案 0 :(得分:5)
你有拼写错误,请尝试
fp = fopen("D:\\abc.txt","r");
代替。
或者,如果文件与程序位于同一文件夹中:
fp = fopen("abc.txt","r");
答案 1 :(得分:4)
更正路径,应为“D:\\abc.txt"
答案 2 :(得分:3)
你的文件路径看起来有点奇怪。将其更改为
fp = fopen("D:\\abc.txt","r");
这可能有用。
除此之外,请加上<errno.h>
并检查它是否失败。
答案 3 :(得分:2)
fp = fopen("D:/abc.txt","r");
应该是
fp = fopen("D:\\abc.txt","r");
在路径中使用\
而不是Windows中的/
和转义序列的额外\
。
编辑:
当您向其他人评论fp = fopen("D:\\abc.txt","r");
也无效时,请检查实际名称是什么。你可能错误地给出了错误的名字,检查你是否有这样的错误。
(1)打开命令提示符
(2)使用DIR命令打印文件名:
c:\Users\name> D:
D:\> DIR
Volume in drive D is FUN BOX
Volume Serial Number is B48A-3CE7
Directory of d:\
27-02-2013 19:23 0 abc.txt.txt
26-02-2013 22:05 <DIR> BOLLYWOOD MOVIES
27-02-2013 19:31 0 x
2 File(s) 0 bytes
1 Dir(s) 11,138,654,208 bytes free
文件名是abc.txt.txt
,但是当您在文件夹扩展名中看到此信息时,不会显示,文件名显示为abc.txt
我是Linux用户,我通常在Windows中犯这个错误。这就是原因。可能对你有所帮助!
答案 4 :(得分:2)
如果您正在使用TurboC,请将该文件放在TC的BIN目录中。 并将路径指定为 fp = fopen(“abc.txt”,“r”); 而不是任何其他备用路径。
答案 5 :(得分:1)
下一次,尝试使用perror()函数使错误更具体。 Perror()将解释错误代码,这将帮助您浪费更少的时间,试图找到错误的类型。
在您的代码中添加此内容...
if(fp == NULL)
{
perror(fp);
}
在跑步时,我收到了错误信息
没有这样的文件或目录。 (因为我运行程序,并尝试读取文件,而不先创建它)
看看,如果这是同样的问题,在你的情况下