我是 C++ 编程的新手。在教程中,作者提到“cin”如果读取字符串中的空格会中断。如果你想让程序读入一整行带空格的字符串,你应该使用函数“getline”。
但是,我无法让它工作。
这是我的代码:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string my_name;
cout << "Please enter your name: ";
getline(cin, my_name, "\n");
cout << "My name is " << my_name << " .";
}
我使用的 IDE 是 Xcode。错误消息是“没有匹配的函数来调用’getline’”。
我已经搜索过类似的问题,但在我看来,没有一个解决方案适用于我的问题。也许我缺少一些知识?谢谢你。
原文由 Noah 发布,翻译遵循 CC BY-SA 4.0 许可协议
你老师说的不是真的。
cin
不会“中断”。只是将格式化提取到std::string
旨在逐字读取。那是故意的。它没有坏。至于您的错误,您对
std::getline
的调用被中断,因为 delimiter 参数的类型错误。'\n'
是char
文字;"\n"
是一个char
数组文字,根本不是你想要的。