2009-08-30 10 views
0

デバッグからの出力:.exeファイル(プロジェクト/デバッグ/からダブルクリックを経由して実行)からVS C++プログラムは、.exeをフォルダから実行した場合にのみ動作しますか? [ないデバッグVS]

出力:

ファイルが...

ファイルの内容を開設:

ファイル開く...

ファイルの内容: line1 line2 など。 。

ソースコード:

#include <iostream> 
#include <fstream> 
#include <regex> 
#include <string> 
#include <list> 

using namespace std; 
using namespace tr1; 


int main() 
{ 
    string line; 
    list<string> dataList; 

    ifstream myFile("test_data.txt"); 
    if (! myFile) 
    { 
     cout << "Error opening file. \n"; 
     return 0; 
    } 
    else 
    { 
     cout << "File opened... \n"; 
     while(getline(myFile, line)) { 
      dataList.push_back(line); 
     } 
    } 

    cout << "\n\n File contents:"; 

    list<string>::iterator Iterator; 
    for(Iterator = dataList.begin(); 
      Iterator != dataList.end(); 
      Iterator++) 
    { 
     cout << "\t" + *Iterator + "\n"; 
    } 




    getchar(); 
    return 1; 
} 

はあなたの助けをありがとう!

私は今問題を理解しています、ありがとうございます。明らかに、これはファイルのエラー処理のこの方法が役に立たないことも示しています。私もそれを修正しました。再度、感謝します。

答えて

4

あなたはこのラインコード化されてきた方法:

ifstream myFile("test_data.txt"); 

コードは、現在の作業ディレクトリ内のファイルを探していることを意味しています。

/project/debug(あなたの場合)というファイルがデバッガの外で実行されると、おそらくそのファイルがどこにあるのでしょうか。

\projectになる(おそらく)デバッガの内部で実行すると、ファイルが含まれません。

ファイルのコピーを2つ作成するか、ファイルのフルパスをハードコードするか、実行時にファイルを指定する方法が必要です。

1

.exeは通常、Visual Studioから起動するとDebug/../から実行されます。ダブルクリックすると、 'Debug /'で実行されます。

test_data.txtを移動するか、ほとんどの開発者として実行し、実行前にバイナリとデータをエクスポートする出力ディレクトリを作成します。

2

VCのプロジェクトの[デバッグ]プロパティページで作業ディレクトリ(test_data.txtが検索される場所)を指定することもできます。

関連する問題