【发布时间】:2014-01-13 01:20:03
【问题描述】:
如果我有类似的文件
1 5 6 9 7 1
2 5 4 3 8 9
3 4 3 2 1 6
4 1 3 6 5 4
我想对每一行中的数字进行排序.. 如何知道何时有换行符? 例如代码:
while (!input.eof) {
input>>num;
while (not new line ?){
input>>o;
b.push_back(o);
}
sort (b.begin(),b.end());
se=b.size();
output<<num<<" "<<b[se-1]<<endl;
b.clear();
}
注意:我尝试了 while(input>>num) 并且 getline 现在可以与我一起使用 有什么想法吗?
【问题讨论】:
-
如果您想阅读台词,最好的选择是
getline。注意while (!eof())is wrong. -
由于您似乎在逐个迭代每个字符,因此您可能会发现知道
"\n"是新行的CHAR会很有帮助。 -
为什么eof错了? Std::getline 本身确实将文件移到了末尾
-
@Gasim,点击 chris 提供的链接,看看为什么
while (!eof())是“错误的”。更具体地说,这不是检查这种循环的好方法,因为必须在eof()为真之前尝试读取 EOF。它不会告诉您您是否“处于”EOF。