C语言文件读写基本问题

文件读写最简单问题,编译器是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);
}

文件目录如下

阅读 2.6k
1 个回答

因为找不到1.txt文件。也就是程序执行的工作目录并不是src。
你是直接点击Run或者Debug按钮执行的吧?那么点击那个按钮旁的小三角,选择你的Run或Debug Configuration,第二个选项卡里有工作路径,通常是一个预设的变量workspace_loc也就是代表工作空间的目录。

你要么改变设置,要么就把1.txt放那个路径,要么在代码写绝对路径。

另外其实全局变量errno会记录下fopen失败的原因的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题