繁体   English   中英

在C ++问题中使用cin.get()获取用户输入

[英]Getting user input using cin.get() in C++ question

我不确定我在这里缺少什么。 这是我在网站上找到的一小段代码,然后将其放入程序中以查看其工作方式,然后稍后根据自己的喜好对其进行修改。 我包括iostream,此代码段位于我的主要功能中。

char buffer[80];
cout << "Enter the string: ";
cin.get(buffer, 79);       // get up to 79 or newline
cout << "Here's the buffer:  " << buffer << endl;

发生的情况是该程序从不要求用户输入。 似乎只是打印出两个cout语句,然后结束。 我从中获得摘录的站点显示了以下输出:

Enter the string: Hello World
Here's the buffer: Hello World

我的建议是忘记该代码段的存在,而是查找std::getline 您将使用如下所示的内容:

#include <string>
#include <iostream>

int main() {
    std::string buffer;

    std::getline(buffer, std::cin);
    std::cout << "Here's the buffer: " << buffer;
    return 0;
}

当然,您可以像std::cin >> buffer一样使用流提取,但是这样做只会读取输入的一个“单词”,而不是您之前的代码试图读取的整个行。

该代码返回当时输入缓冲区中的所有内容,很可能什么都没有。

只是要检查在文件中键入一些数据,然后运行程序并添加“ <myfile”以查看数据是否已加载到缓冲区中。

如果要等待数据,则需要进行一些控制台操作。

要获得新行作为分隔符,您应该使用

cin.get(buffer, 79, '\n');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM