我正在使用Visual Studio 2012 Premium。当此代码正常执行(而不是在调试器中)时,唯一的输出是空行。但是当它在调试器中运行时,输出是“1月9日8”。在Debug和Release之间切换没有区别,并且使用#pragma optimize(“”,off)关闭main()函数的优化没有任何作用。我该怎么做才能输出“1月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
答案 0 :(得分:0)
这听起来像是一个经典的工作目录问题。在Visual Studio外部运行时,请确保P02.DAT与可执行文件位于同一目录中。
在IDE中执行时,Visual Studio通常会将当前工作目录设置为解决方案的根目录。您可能有以下布局:
在Visual Studio中执行project.exe时,它将设置要构建的工作目录,允许您的应用程序访问P02.DAT。如果在Visual Studio外部执行project.exe(例如在cmd实例中),它将查找您所在的目录。