我有一个包含以下行的文件:
5556
0 bla.dxf
1 blub.dxf
2 buzz.dxf
数字和文本分别由一个单数制表符分隔,5556 之后没有空格字符。以下代码用于解析。
int main(int, char**){
std::ifstream file("test.bld");
std::string buildingName;
file >> buildingName;
std::cout << buildingName << std::endl;
std::string buf;
while(getline(file, buf)) {
if(buf.empty()){std::cout << "String was empty"<<std::endl;}
else std::cout << buf << std::endl;
}
return 0;
}
当我解析文件时,我得到一个空行,尽管显然没有。输出内容如下:
5556
String was empty
0 bla.dxf
1 blub.dxf
2 buzz.dxf
这只是一个最小的例子。整个文件和解析器更复杂,我非常想对第一个元素使用直接解析,其余部分使用 getline。我对行解析有什么误解getline
,如何避免出现空行?