我无法在c中打开文件

时间:2013-02-27 13:42:13

标签: c file fopen

我在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();
}

6 个答案:

答案 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);
}

在跑步时,我收到了错误信息

没有这样的文件或目录。 (因为我运行程序,并尝试读取文件,而不先创建它)

看看,如果这是同样的问题,在你的情况下