我不确定我在这里缺少什么。这是我在网站上找到的代码片段,我将它放在我的程序中以查看它是如何工作的,然后我会根据自己的喜好对其进行修改。我包括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
答案 0 :(得分:1)
我的建议是忘记此代码段的存在,然后查找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
之类的流提取,但这样做只会读取输入的单个“字”,而不是像之前的代码那样整行。
答案 1 :(得分:1)
代码返回当时输入缓冲区中的内容,很可能没有。
只需检查文件中的某些数据类型,然后运行程序并添加“&lt; myfile”以查看数据是否已加载到缓冲区中。
如果你想等待数据,你需要做一些控制台操作。
答案 2 :(得分:0)
要将新行作为分隔符,您应该使用
cin.get(buffer, 79, '\n');