文件读写最简单问题,编译器是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);
}
文件目录如下
PHP中文网2017-04-17 15:08:12
因為找不到1.txt檔案。也就是程式執行的工作目錄並不是src。
你是直接點擊Run或Debug按鈕執行的吧?那麼點選那個按鈕旁的小三角,選擇你的Run或Debug Configuration,第二個選項卡里有工作路徑,通常是一個預設的變數workspace_loc也就是代表工作空間的目錄。
你要嘛改變設置,要嘛就把1.txt放那個路徑,要嘛在程式碼寫絕對路徑。
另外其實全域變數errno會記錄下fopen失敗的原因的。