【问题标题】:C++ no command prompt output?C++没有命令提示符输出?
【发布时间】:2017-06-22 23:43:23
【问题描述】:
#include <iostream>


int main(int argc, char* args[]) {
    std::cout << 'hi';
    std::cout << "hello";

}

当我在 Windows 上运行此代码时,我看不到任何输出。我做错了什么?

编辑

我认为这是我机器上的一个问题,因此是我的问题。我知道它在理论上可以工作,但我想知道为什么它在实践中不起作用。 (在我的 Windows 电脑上)

【问题讨论】:

  • 为什么要在'hi'中单引号?
  • 使用带有双引号的std::cout &lt;&lt; "hi";。双引号用于打印一个或多个字符。单引号仅用于一个字符。
  • 你是如何编译和运行它的?
  • 你是如何编译你的程序的,你是如何运行它的?

标签: c++ iostream


【解决方案1】:

有些编译器在执行完代码后会关闭输出窗口,所以我们在代码末尾使用getchar()getch()system("Pause")。因此输出窗口将等待按键事件关闭输出窗口。这样你就可以看到你的输出了。

【讨论】:

    【解决方案2】:
    std::cout << "hi"; // Double quotes required.
    

    output-here

    您应该会看到原始程序的一些输出,尽管它可能不是您想要的输出。 26729hello

    【讨论】:

    • 我没有看到任何输出
    • @JulianGoddard,点击我提供的 ideone 链接,您应该会看到输出 hihello
    • 我认为这是我机器上的问题,因此是我的问题。我知道它在理论上可以工作,但我想知道为什么它在实践中不起作用。 (在我的 Windows 电脑上)
    • 如何在 windows 上编译?你有 IDE 吗?
    【解决方案3】:

    std::cout 的缓冲区没有被刷新到控制台。

    尝试运行:

    #include <iostream>
    
    
    int main(int argc, char* args[]) {
        std::cout << "hi";
        std::cout << "hello"<<std:endl;
    
    }
    

    问题在于 std::cout 将文本 "hihello" 存储在内部缓冲区中,但该缓冲区没有被“刷新”,在这种情况下意味着写入控制台窗口。

    【讨论】:

    • coutmain 结束时自动刷新。只要程序正常终止(即不崩溃),这应该不是问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多