文件读写最简单问题,编译器是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.txt文件。也就是程序执行的工作目录并不是src。
你是直接点击Run或者Debug按钮执行的吧?那么点击那个按钮旁的小三角,选择你的Run或Debug Configuration,第二个选项卡里有工作路径,通常是一个预设的变量workspace_loc也就是代表工作空间的目录。
你要么改变设置,要么就把1.txt放那个路径,要么在代码写绝对路径。
另外其实全局变量errno会记录下fopen失败的原因的。