2016-04-27 13 views
-3

Visual Studioのコマンドライン引数から.txtファイルの各行を読み取ろうとしています。これは私が使用しているコードです:C++ Visual Studioで.txtファイルが読み取られない

ifstream inFile(argv[2]);  //read text file indicated by argv[2] 

if (inFile.is_open() && inFile.good()) 
{ 
    string line = ""; 
    while (getline(inFile, line)) 
    { 
     cout << line << '\n'; 
    } 

} 

しかし、私はこのコードをコンパイルするたびに、私は常にガベージ文字を取得します。面白いのは、コードがうまく動作し、ターミナルから直接実行するときに実行されるコードを実行することです。 VSを使ってこの問題が発生したときだけです。なぜこのようなことが起こっているのか、私は感謝しています。ありがとうございました!

答えて

0

Visual Studioで実行しているときに、現在の作業ディレクトリが異なることが予想されます(99.9%)。 2つの簡単なオプションがあります。

  1. は、Visual Studioでのデバッグ/ Releaseフォルダ で開こうとしているファイルを入れて(またはどこからその実行は)
  2. 変更するには、ARGVに提供パスは、[2]の完全なパスであることをまたはVisual Studioで動作する相対パス です。
+0

Visual Studio IDEから実行するときの既定の作業ディレクトリは、* project *フォルダ(.vcprojプロジェクトファイルが選択されたスタートアッププロジェクト用に存在するフォルダ)*ではなく、$(OutDir) '場所。プロジェクトの「デバッグ」構成設定で変更されていない限り、IDEからのテスト(明らかにOPが実行中)は、プロジェクトフォルダは実行時に作業ディレクトリにあるはずのデータファイルが存在する場所です。 – WhozCraig

+0

ああ、それは1 – djgandy

関連する問題