我有一个文本文件,格式如下:
info
data1 data2
info
data1 data2 data3 data4...
字符串
问题是:当使用getline()
时,数据的计数(和长度)可能非常大,并导致运行时问题。所以我不能将整行读取到std::string
中。我尝试了以下方法:
for(int i=0; i<SOME_CONSTANT ; i++){
string info, data;
cin >> info;
while(cin.peek() != '\n' && cin >> data){
// do stuff with data
}
}
型
然而cin.peek()
没有做到这一点。信息在while循环中被读入数据,程序把事情搞砸了。我该如何解决这个问题?
3条答案
按热度按时间gz5pxeao1#
你可以试着一个字一个字地阅读。
字符串
alen0pnh2#
使用
std::istream::getline
代替std::getline
。您可以选择缓冲区大小和缓冲区大小。nle07wnf3#
我知道这是一个老问题,但这里是我对这个问题的简单解决方案。
字符串