我正在从标准输入流中获取输入。如,
1 2 3 4 5
或者
1
2
3
4
5
我在用着:
std::string in;
std::getline(std::cin, in);
但这只是抓住了换行符,对吗?如何仅使用 iosteam、字符串和 cstdlib 获取输入是否由换行符或空格分隔?
原文由 user618712 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在从标准输入流中获取输入。如,
1 2 3 4 5
或者
1
2
3
4
5
我在用着:
std::string in;
std::getline(std::cin, in);
但这只是抓住了换行符,对吗?如何仅使用 iosteam、字符串和 cstdlib 获取输入是否由换行符或空格分隔?
原文由 user618712 发布,翻译遵循 CC BY-SA 4.0 许可协议
只需使用:
字符串线;
获取线(cin >> ws,线);
它在这里描述: https ://www.geeksforgeeks.org/problem-with-getline-after-cin/
原文由 David Schmid 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.5k 阅读
3 回答503 阅读✓ 已解决
只需使用:
operator>>
默认会跳过空格。您可以链接事物以一次读取多个变量:getline()
在一行中读取所有内容,返回它是否为空或包含数十个空格分隔的元素。如果您提供可选的替代分隔符 alagetline(std::cin, my_string, ' ')
它仍然不会做您想要的,例如标签将被读入my_string
。可能不需要这样做,但是您可能很快就会感兴趣的一个相当常见的要求是读取单个换行符分隔的行,然后将其拆分为组件…