c ++ getchar在vs 2010中工作,不在2012年

时间:2015-09-04 07:23:12

标签: c++ visual-studio-2010 visual-studio-2012

为什么程序刚刚退出,在2012年,而在2010年它是否等待我的输入?

#include "stdafx.h"
#include <string>
#include <iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    string path = "c:\somepath";
    cout << "Path is" + path << endl;
    getchar();
    return 0;
}

1 个答案:

答案 0 :(得分:0)

程序流中不使用getchar()函数,只会在您的情况下使用等待输入的副作用。而不是破解你的程序,以避免关闭窗口,你应该使用正确的方法来保持它打开。

选择以下其中一项:

  1. 命令窗口

    • 打开命令提示符
    • 导航到您希望程序执行的文件夹
    • 键入.exe的路径,然后按Enter键。执行程序后命令提示符仍处于打开状态,不需要getchar()
  2. 无需调试即可启动

    • 只需使用菜单项Debug-&gt; Start Without Debugging。执行程序后,新的控制台窗口仍处于打开状态,不需要getchar()
  3. 从调试开始

    • 在主函数的结束'}'处设置断点。
    • 使用菜单项Debug-&gt; Start。调试会话仍处于活动状态,控制台程序的窗口仍处于打开状态。不需要getchar()
  4. 为什么你应该避免getchar()打开一个窗口?

    • 这是一个依赖于之前的程序的黑客。输入缓冲区中可能有一些字符指向此处的指针:getchar() doesn't work well?

    • 如果您超出了尝试学习C或C ++的阶段,则您的程序无法在批处理文件中使用。

    • 没必要。