文件读写最简单问题,编译器是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 ではありません。
[実行] または [デバッグ] ボタンを直接クリックして実行しましたか?次に、ボタンの横にある小さな三角形をクリックして、実行またはデバッグ構成を選択します。2 番目のタブには作業パスが表示されます。これは通常、ワークスペースを表すディレクトリであるプリセット変数 workspace_loc です。
設定を変更するか、そのパスに 1.txt を置くか、コードに絶対パスを記述することができます。
さらに、グローバル変数 errno に fopen の失敗の理由が記録されます。