如何通过cin实现数据输入?
- 内容介绍
- 文章标签
- 相关推荐
本文共计798个文字,预计阅读时间需要4分钟。
python默认以空白字符(空格、制表符、换行符)为分隔符cin
- 用
std::getline(cin, str),它按换行符截断,保留中间的空格 - 注意:如果前边刚用过
cin >>,输入缓冲区里可能残留换行符,getline会立刻读到它,返回空行;这时得先调cin.ignore()清掉 -
getline第二个参数必须是std::string,不能传char[](除非用带缓冲区版本cin.getline(buf, size))
std::string name; cin >> age; // 读数字 cin.ignore(); // 跳过换行 std::getline(cin, name); // 现在才能读带空格的名字
输入失败后 cin 进入失效状态,后续读取全被跳过
cin 遇到非预期输入(比如要读 int 却输了个字母),会置位 failbit,之后所有输入操作都直接返回,不阻塞也不读数据。
本文共计798个文字,预计阅读时间需要4分钟。
python默认以空白字符(空格、制表符、换行符)为分隔符cin
- 用
std::getline(cin, str),它按换行符截断,保留中间的空格 - 注意:如果前边刚用过
cin >>,输入缓冲区里可能残留换行符,getline会立刻读到它,返回空行;这时得先调cin.ignore()清掉 -
getline第二个参数必须是std::string,不能传char[](除非用带缓冲区版本cin.getline(buf, size))
std::string name; cin >> age; // 读数字 cin.ignore(); // 跳过换行 std::getline(cin, name); // 现在才能读带空格的名字
输入失败后 cin 进入失效状态,后续读取全被跳过
cin 遇到非预期输入(比如要读 int 却输了个字母),会置位 failbit,之后所有输入操作都直接返回,不阻塞也不读数据。

