2016-08-18 4 views
1

私はofstreamの問題に直面しています。プログラムは書き込みたいファイルを開くことができません。ofstream:ファイルを開くことができません

#include <cstdio> 
#include <fstream> 

using namespace std; 

int main(){ 

    string root_path = "E:\\160818\\"; 
    string file_path = root_path + "haar_data.txt"; 

    ofstream haar_file(file_path.c_str()); 

    if(!haar_file) // < -------- File cannot be open 
    { 
     cout<<"Error opening file for writing\n"; 
     return 1; 
    } 
    haar_file.close(); 

    return 0; 
} 

マイコンパイラはVS2008です。画面の出力は

書き込み用のエラーファイルです。

エラーは何ですか?私は何かを書くためにこのファイルを開きたい。

+1

ファイルhaar_data.txtは存在するのですか、それとも作成しますか?あなたのプログラムはこのパスのファイルを作成/修正することができますか? (管理者などで実行している可能性があります) (おそらく、\\を/と置き換えてみてください。Windowsでは動作しませんが、試してみる価値があります) – bisthebis

+2

ファイルを作成または開く権限がありません。シンプル! –

+1

BTW 'main'は' int'を常に返します。 –

答えて

3

私はあなたのコードをコンパイルし、それを使用しました。


あなたの提供されたコードにiostreamが含まれていないので、 'cout'式のために追加する必要があります。 C++ 11以降では、ファイルを開くために.C_str()を使用する必要はありません。 ファイルが存在しない場合は、ofstream(ios :: outで開きます)を使用するため、ファイルはとにかく作成されます。 管理者権限を使用していますか? パスが正しいか(フォルダ名が間違っていますか)

+0

ええ、フォルダ名に中国語が含まれているため、この問題が発生します。 – Lee

+0

この場合、「管理者権限」を使ってファイルに書き込む方法はありますか?実行時には単純な 'sudo。/ executable'ですか、それともコード内で実行する必要があるのでしょうか? –

関連する問題