2016-05-10 1 views
-1

私はC++を勉強していて、デスクトップにテキストファイルを作成して書き込むプログラムを作成しようとしています。学習C++。デスクトップにファイルを書き込む。いいえどこを見つけるか

何らかの理由で、ファイルがデスクトップ上に見つかりません。私が構築し、私のコードをコンパイルするためにEclipseを使用しています

#include <iostream> 
#include <fstream> 
using namespace std; 


int main() { 

    ofstream myfile; 
    myfile.open ("C:\\Users\\MyName\\Desktop\\test.txt"); 
    myfile << "Writing this to a file.\n"; 
    myfile.close(); 
    return 0; 

} 

は、ここに私のコードです。これがデスクトップにファイルを書き込んでいない理由ですか?

答えて

0

私にも働きました。私はコンパイルし、これをubuntuで実行しました。 Windowsのコマンドラインからこれを実行し、それが動作するかどうかを確認してください。

+0

を説明する必要があります。なぜこのようなものなのか分かりません。 –

+0

nvm私はそれを理解しました。 minGWパスを環境変数のsystem32パスよりも上に移動する必要がありました。今それは日食で動作します。 –

+0

喜んで助けになるでしょう。 – Shubham

-1

私のためにうまく行きました...パスのMyName部分を確認してください。あなたのユーザー名にする必要があります。私はEclipseを使いませんでした。私はQtを使いました。

+0

誰かが負の議決権を行使された場合、彼らは、私はそれが動作するためには、コマンドラインから実行しなければならなかった理由... –

0

正しいトラックでOPを取得して独自のコードをデバッグするためのpara-answerだけです。

ファイルストリームでは、尋ねない限り、多くのことを教えてくれません。ストリームが開くことができない場合は、ストリームから読み込もうとすることができます。何も手に入れませんが、試してみることができます。あなたが尋ねない限り、エラーメッセージを受け取ることさえありません。 OPは尋ねていないので、何が起こったのか何が起こったのかを知る方法がありません。

Check to ensure the file is open

if myfile.is_open() 
{ 
    cout << "Opened the file, dude."<< endl;` 
} 
else 
{ 
    perror("Failed to open the file, man."); 
} 

とデータが書き込まれたことを確認するために、書き込み

if(myfile << "Writing this to a file.\n") 
{ 
    cout << "Wrote to the file. Cool beans, man."<< endl;` 
} 
else 
{ 
    perror("Failed to write to the file, man."); 
} 

の結果を確認してください。

The output of perror should give you a hint of what went wrong and how to fix it.

+0

エラー条件をチェックするだけでなく、 '' SHGetFolderPath''または '' SHGetKnownFolderPath''を使用して、ハードコーディングするのではなくデスクトップパスを取得する必要があります。 –

関連する問題