问题描述
文件读写最简单问题,编译器是Eclipse C++,fopen函数总是返回空指针,怎么回事?
#include <stdio.h>#include <fstream>using namespace std;int main(){ FILE *fp; fp=fopen('1.txt','r+'); if(fp==NULL){printf('there is no character.'); } char buff[255]; fscanf(fp,'%s',buff); printf('%s',buff);}
文件目录如下
问题解答
回答1:因为找不到1.txt文件。也就是程序执行的工作目录并不是src。你是直接点击Run或者Debug按钮执行的吧?那么点击那个按钮旁的小三角,选择你的Run或Debug Configuration,第二个选项卡里有工作路径,通常是一个预设的变量workspace_loc也就是代表工作空间的目录。
你要么改变设置,要么就把1.txt放那个路径,要么在代码写绝对路径。
另外其实全局变量errno会记录下fopen失败的原因的。