按Enter键后如何使用cout打印文本?

时间:2011-12-18 01:43:53

标签: c++ cout

哪个命令让我通过输入来输入我的新随机数?我试着写系统(“暂停”),但后来“按任意键继续”,我不喜欢。是否有可能只按一下输入按钮并一个接一个地查看数字?

这是程序代码:

#include <iostream>
using namespace std;
#include <stdlib.h>
#include <ctime>

int main()
{
    int i, k;

    srand(time(0));
    for (i = 0; i < 20; i++)
    {
        cout << (rand() % 8) << endl;
    }
}

6 个答案:

答案 0 :(得分:1)

#include <limits>

// ...

cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');

读取单个字符的优点是,这将确保没有任何杂散字符留在缓冲区中。

答案 1 :(得分:1)

这是一个稍微更现代的C ++:

#include <iostream>
#include <ctime>
#include <random>

int main()
{
    std::mt19937 rng(std::time(0));
    std::uniform_int_distribution<int> gen(0,7);

    for (int i=0;i<20;i++)
    {
        std::cout << gen(rng);

        std::string line;
        std::getline(std::cin, line);
    };
}

答案 2 :(得分:0)

您可以简单地使用getchar()来读取一个按键,然后继续。如果您想特别打破输入键,请使用while (getchar() != "\n");

之类的内容

答案 3 :(得分:0)

cin >> SomeVariableThatCouldAcceptAnythingInCaseYouPressSomethingElseBeforeTheEnterKey之前或之后添加cout,无论您喜欢哪个。

答案 4 :(得分:0)

读一个字符串吧?

#include <string>
....


for (i=0;i<20;i++)
{
    std::string str;
    cin >> str; // this should pause until the user presses enter
    cout << (rand()%8) << endl;

};

答案 5 :(得分:0)

简单cin.get()怎么样?不需要任何临时变量或任何C函数。