问题
I have the following code where I am trying to open a text file.
char frd[32]="word-list.txt";
FILE *rd=fopen(frd,"rb");
if(!rd)
std::cout<<"Coudn't open file\t"<<frd;
I am using vc 2010 and the file is in the debug directory of this project. Can anyone tell me why it is not able to open the file?
回答1:
#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);
}
this way if fopen gets fail then it will set error number you can find those error number list at here http://pubs.opengroup.org/onlinepubs/009695399/functions/fopen.html
回答2:
Look at the errno variable which is set in the event of an error. It's a global variable. It's been a while, but probably include errno.h which will give you the definition.
回答3:
You can do man fopen - it says Upon successful completion fopen() return a FILE pointer. Otherwise, NULL is returned and errno is set to indicate the error.
Please check whether the file exists in the execution path or in your program, check the errno
回答4:
r Open for reading (existing file only) and
rb Open for reading (existing file only) in binary mode. Make sure you have the file in your working directory.
来源:https://stackoverflow.com/questions/8633909/what-is-the-reason-for-fopens-failure-to-open-a-file