【发布时间】:2013-03-07 16:07:37
【问题描述】:
#include <cstdlib>
#include <iostream>
int GenerateID()
{
using namespace std;
static int nNextID = 0;
nNextID++;
if (nNextID <= 20)
cout << nNextID << endl;
}
int main()
{
int GenerateID();
system("pause");
}
为什么上面的程序没有运行?我希望它使用这个程序在 1-20 的控制台上生成。
事实上,程序正在运行。但是,该程序没有生成任何输出。我希望输出是数字1 到20,在一行上用空格分隔。我观察到空白,即没有输出。
程序不会崩溃。没有编译器错误或警告。事实上,这里有一个程序的演练:
我导入了两个库,cstdlib 用于执行系统命令,system 和 iostream 分别用于输入和输出对象 cin 和 cout。它们位于std 命名空间中,所以我输入using namespace std,因为我很懒,不想输入std::cout。
然后我将nNextID初始化为0,将其递增,如果小于20则输出nNextID。函数到此结束。
我从main 调用该函数并使用pause 结束程序。那么,当我期望 1 到 20 在一行上时,为什么我得到空白输出,数字由空格分隔?
【问题讨论】:
-
这里的错误太多了。为自己准备一本 C++ 书籍/教程。
-
打印所有数字的循环在哪里?
-
system("pause")总是让我很沮丧。 stackoverflow.com/q/1107705/10077 -
@m0skit0:还不如链接The Definitive C++ Book Guide and List。
-
Jossie,你观察到什么让你相信它没有运行?你期望输出是什么,你观察到什么输出?它会崩溃吗?它是否有任何编译器错误或警告?
标签: c++