我在以下代码中尝试打开文本文件。
char frd[32]="word-list.txt";
FILE *rd=fopen(frd,"rb");
if(!rd)
std::cout<<"Coudn't open file\t"<<frd;
我正在使用vc 2010,该文件位于此项目的调试目录中。 谁能告诉我为什么它无法打开文件?
答案 0 :(得分:7)
#include<stdio.h>
#include <errno.h>
int main()
{
errno = 0;
FILE *fb = fopen("/home/jeegar/filename","r");
if(fb==NULL)
printf("its null");
else
printf("working");
printf("Error %d \n", errno);
}
这样如果fopen失败,那么它会设置错误号,你可以在这里找到那些错误号列表http://pubs.opengroup.org/onlinepubs/009695399/functions/fopen.html
答案 1 :(得分:1)
查看在发生错误时设置的errno变量。它是一个全局变量。它已经有一段时间了,但可能包括errno.h,它将为您提供定义。
答案 2 :(得分:1)
你可以man fopen
- 它说Upon successful completion fopen() return a FILE pointer. Otherwise, NULL is returned and errno is set to indicate the error
。
请检查文件是否存在于执行路径或程序中,请检查errno
答案 3 :(得分:0)
r Open for reading (existing file only) and
rb Open for reading (existing file only) in binary mode
。确保您的工作目录中包含该文件。