这个问题似乎与Why does getline return empty lines if none exist
有关与上述问题不同,我在代码中使用了两个不同的流,即cin
和fstream
。我在>>
上使用cin
运算符,然后在getline()
上调用fstream
。该代码段复制如下:
int main() {
int num_tag_lines;
int num_queries;
string line;
cin >> num_tag_lines >> num_queries;
fstream file_h("h_input.txt");
if(file_h.is_open()){
while(!file_h.eof()){
line.clear();
getline(file_h, line);
assert(!line.empty());
}
file_h.close();
file_h.clear();
}
return 0;
}
断言在代码中失败。我所看到的是,即使我检查了getline()
文件中的空行并且似乎没有任何内容,input.txt
仍从输入文件input.txt
的末尾读取了一个空字符串。
1 <tag1 value = "HelloWorld">
2 <tag2 name = "Name1">
3 </tag2>
4 </tag1>
只需添加一下,我正在Windows上使用Cygwin环境进行编码,并且该文件位于Windows上。但是我认为那应该没有任何区别。
欣赏您的想法。
TIA