【问题标题】:c++ Program compiles but output is not displayed [duplicate]c ++程序编译但不显示输出[重复]
【发布时间】:2014-11-12 10:32:54
【问题描述】:

我在 Visual Studio 上编写了一个简单的 C++ 程序,用于将数字从任何基数转换为十进制数。

程序编译但不在控制台显示输出。

即使在通过 cin 接受输入后,consle 也只是打开闪烁,但此后没有任何反应

源代码:

#include <iostream>

using namespace std;

 void main()
{

    int Base = 3; int Number = 122;

    int j = 0;
    int dec = 0;  
    int num = Number;

    while (num >= 0)
    {
    dec += (num % 10)* (Base^j);

    num = num / 10;
    j++;

    }
    cout << "Decimal is" << dec;

}

【问题讨论】:

  • 无关:您真的打算对 Basej 进行 XOR 吗?也许刷新你的 IO,这并不重要,因为你的进程无论如何都会终止,但如果你输入丑陋的 system("pause")

标签: c++ visual-studio-2012


【解决方案1】:

你需要刷新输出流并让程序暂停,这样你的控制台窗口就不会消失:

char ch;
cout << "Decimal is" << dec << endl;
cout << "Hit any key to continue..." << endl;
cin >> ch;

【讨论】:

  • 如果您热衷于使用此功能,请在 Windows 上执行 _getch()。 cin 会要求您输入一个键并按回车键。
  • @GlGuru:当然,但这取决于您是否关心可移植性。在这种情况下,我的期望并不重要,但编写可移植代码是在学习过程的早期养成的好习惯。
  • 如果是这种情况,您可以只使用 POSIX 变体 getch()。您不必处理警告,据我所知,它们几乎相同。
  • 我不确定我是否做得对......我已经包含了上面的行并且控制台不会关闭,无论我点击多少个字符
  • 另一个反对意见是,一般来说,您不应该混合使用 C 和 C++ I/O。此外,通常不鼓励在 C++ 代码中使用 C API——否则人们最终会编写“带类的 C”而不是正确的 C++。但同样,它可能与这样的简单家庭作业无关。
猜你喜欢
  • 1970-01-01
  • 2016-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-26
  • 2016-02-24
  • 2011-07-24
  • 2018-11-28
相关资源
最近更新 更多