【问题标题】:Creating a first C++ project in Visual Studio [duplicate]在 Visual Studio 中创建第一个 C++ 项目 [重复]
【发布时间】:2019-06-22 17:01:21
【问题描述】:

我的 IDE 是 Visual Studio 2017。 我是 C++ 编程的新手,所以我需要帮助了解在 Visual Studio 中创建新 C++ 项目的原则。 所以,在我的第一次单独尝试中,我只选择了一个空项目选项,然后我选择添加新项目,然后我编写了这个示例代码:

#include <iostream>
using namespace std;

int main()
{

    return 0;
}

在这一步以及编译、构建和启动而不调试的步骤之后,我没有收到任何消息或控制台窗口,其中包含代码执行时间或输入任何键以结束的选项。 在代码末尾获取此类信息需要什么?

【问题讨论】:

  • 进入工具->选项->调试,寻找一个名为“调试停止时自动关闭控制台”的选项,并确保该选项没有被激活。
  • 您也可以在从 main 返回之前添加std::cin.get();。但是当有任何输入时,这将不起作用std::cin
  • 附带说明:不要使用using namespace std;,请参阅此处了解更多信息:stackoverflow.com/questions/1452721/…
  • 例如在 Visual Studio 2015 中,我可以选择 Windows 控制台应用程序选项或创建项目,然后选择该步骤,我还将获得一个应用程序向导,我可以在其中查看我想要包含在项目中的内容(预编译的标头)或者只是空项目,所以在 Visual Studio 2017 中我没有机会启动该应用程序向导。

标签: c++ visual-studio


【解决方案1】:

你不应该使用system("pause");,你可以阅读here为什么。它依赖于平台,并增加了加载所有 Windows 特定指令的巨大开销。

所以你应该选择更好的选择:例如std::cin.get()。大部分时间都可以使用。好吧,除非之前有输入(std::getlinestd::cin)。如果您正在使用用户输入创建程序 - 使用 std::cin.ignore() 两次以保证“按 Enter 继续”效果:

#include <iostream>

int main() {
    int a;
    std::cin >> a;
    std::cin >> a;
    std::cin >> a; //etc

    std::cout << "press enter to exit - - - ";
    std::cin.ignore(10000, '\n');
    std::cin.ignore(10000, '\n');
    return 0;
}

也请不要使用命名空间标准;阅读here为什么。


如果你不喜欢这个 3-liner(因为它看起来很丑),你可以将它打包到一个 void 函数中,并将整个东西当作一个 black box

void pause() {
    std::cout << "press enter to exit - - - ";
    std::cin.ignore(10000, '\n');
    std::cin.ignore(10000, '\n');
}

int main(){
    pause();
    return 0;
}

【讨论】:

    【解决方案2】:

    将 Blaze 的评论转换为答案

    进入工具->选项->调试,找到一个名为“调试停止时自动关闭控制台”的选项,并确保该选项没有被激活。


    我没有收到任何消息或控制台窗口,显示代码执行时间或输入任何结束键的选项

    因为你没有要求。

    在代码末尾获取此类信息需要什么?

    执行输入(参见std::cinoperator&lt;&lt;)和输出(参见std::coutoperator&gt;&gt;)。示例:

    #include <iostream>
    
    int main()
    {
        std::cout << "Press enter to terminate\n";
        std::cin.get();
    }
    

    【讨论】:

    • OP 提到程序在没有调试的情况下运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多