1

Visual Studio 2012 Premium を使用しています。このコードが通常 (デバッガーではなく) 実行されると、唯一の出力は空白行です。しかし、デバッガーで実行すると、出力は "January 9 8" になります。デバッグとリリースを切り替えても違いはなく、#pragma optimize("", off) を使用して main() 関数の最適化をオフにしても何も起こりません。「January 9 8」を出力するにはどうすればよいですか?

P02.cpp には以下が含まれます。

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <string>

using namespace std;

int main(){

    system("cls");

    string s = "";

    ifstream tt;
    tt.open("P02.DAT");

    getline(tt, s);

    cout << s << endl;

    return 0;
}

P02.DAT には以下が含まれます。

January 9 8
February 19 17
March 20 23
April 20 15
May 15 16
June 8 7
July 12 9
August 20 18
September 21 27
October 18 17
November 19 24
December 18 17
4

1 に答える 1

0

これは、古典的な作業ディレクトリの問題のように思えます。Visual Studio の外部で実行する場合は、P02.DAT が実行可能ファイルと同じディレクトリにあることを確認してください。

Visual Studio は通常、IDE 内で実行する場合、現在の作業ディレクトリをソリューションのルートに設定します。次のようなレイアウトになる場合があります。

  • build\project.sln
  • build\P02.DAT
  • build\debug\project.exe
  • build\release\project.exe

Visual Studio で project.exe を実行すると、作業ディレクトリがビルドに設定され、アプリケーションが P02.DAT にアクセスできるようになります。project.exe を Visual Studio の外部で (たとえば cmd インスタンスで) 実行すると、現在のディレクトリが検索されます。

于 2012-09-20T12:45:11.483 に答える