【发布时间】:2012-03-03 08:46:57
【问题描述】:
如何检测一行是否为空?
我有:
1
2
3
4
5
我正在使用 istream r 阅读此内容 所以:
int n;
r >> n
我想知道我什么时候到达 4 到 5 之间的空间。 我尝试读取为 char 并使用 .peek() 来检测 \n 但这会检测到数字 1 之后的 \n 。上述输入的翻译是:1\n2\n3\n4\n\n5\n 如果我是正确的...
因为我要操作整数,所以我宁愿将它们读取为整数,而不是使用 getline 然后转换为整数...
【问题讨论】:
-
¤ 使用
std::getline将每一行读入std::string。检查字符串长度。使用例如std::istringstream从输入行中读取单个项目。这也将帮助您处理错误的输入。干杯&hth., -
哦,我刚看到最后一段,意译为“我不想用最简单最合理的方式”。在这种情况下,实际上有无数种更复杂的方法。只有一个人的想象力才能限制以愚蠢复杂的方式做某事的方式。干杯,
-
好吧,你不必无礼。至少我在发布之前尝试了不同的方法。我只是想知道是否有另一种方式。我只是在学习 c++ atm。不过,感谢 istringstream 的评论,我将尝试将它与 getline 混合!如果您愿意,可以将其发布为答案,我会接受。
标签: c++ string input stream istream