c++ - 在c++中将句子作为输入

标签 c++ string input sentence

我试图一个接一个地输入两个句子,但是在打印时它打印了一个空格,在下一行打印了第一个句子并且循环正在退出。

这是我的代码:

int main()
{

    char b[100000];
    char c[100000];
    int t;
    cin>>t;
    while(t--)
    {
        cin.getline(b,100000);
        cin.getline(c,100000);
        cout<<b<<"\n"<<c<<"\n";
    }
}

输入:

1
run run
good sentence

输出:

Blankspace
run run

最佳答案

cin >>t;

这将提示用户进行一些输入。假设用户按照预期进行操作,他们将键入一些数字,然后按下回车键。

数字将存储在输入缓冲区中,但换行符也将存储在输入缓冲区中,换行符是在他们按下回车键时添加的。

cin 将解析数字以生成一个整数,并将其存储在 num 变量中。它在换行符处停止,该字符保留在输入缓冲区中。

    cin.getline(b,100000);
    cin.getline(c,100000);

稍后,您调用 cin.getline(b,100000);,它在输入缓冲区中查找换行符。它会立即找到一个,因此不需要提示用户进行更多输入。所以看起来第一次调用 getline 没有做任何事情,但实际上它做了。

关于c++ - 在c++中将句子作为输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29427472/

相关文章:

python - 来自readline的字符串在python中从1开始?

python - 在字符串 python regex 中查找括号之间的给定单词

java - 如何从非 Activity 或 fragment 类的资源文件中获取字符串

javascript - querySelectorAll 检测输入中的值

c++ - 切换高对比度模式时 CMFCMenuButton 无法正确重绘

c++ - 无法转到文本换行中的新行

c++ - 内联汇编程序递增 64 位计数器

c++ - 指向所有者类的指针

AngularJS 不会用大数字初始化 input[type=range]

ios - input 元素上的 Autocapitalize 属性(用于 iOS)破坏了验证