gpt4 book ai didi

c++ getchar 在 vs 2010 中有效,在 2012 中无效

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:49:09 24 4
gpt4 key购买 nike

为什么程序在 vs 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;
}

最佳答案

程序流程中未使用 getchar() 函数,您的情况仅使用了等待输入的副作用。与其通过修改程序来避免关闭窗口,不如使用正确的方法使其保持打开状态。

选择以下之一:

  1. 命令窗口

    • 打开命令提示符
    • 导航到您希望程序执行的文件夹
    • 键入 .exe 的路径并按 Enter。命令提示符在程序执行后仍然打开,不需要 getchar()
  2. 不调试就开始

    • 只需使用菜单项 Debug->Start Without Debugging。新的控制台窗口在您的程序执行后仍然打开,不需要 getchar()
  3. 开始调试

    • 在 main 函数的结束 '}' 处设置断点。
    • 使用菜单项调试->启动。调试 session 仍处于事件状态,控制台程序的窗口仍处于打开状态。不需要 getchar()

为什么要避免使用 getchar() 来保持窗口打开?

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

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

  • 没必要。

关于c++ getchar 在 vs 2010 中有效,在 2012 中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32392351/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com