将ifstream的部分读入字符串对象?

时间:2011-12-08 03:17:54

标签: c++ string input stream

我正在尝试将ifstream读入字符串,在那里我可以设置正在读取的字符数。我已经阅读了ifstream.get()ifstream.getline()的文档,但这些文档都没有达到我想要的效果。

给出以下字符串:

  

asdfghjklqwertyuiop

我想一次读入不同数量的字符到字符串中。我是这样开始的,但是我收到一个错误,即没有将字符串作为第一个参数的函数:

string destination;
int numberOfLettersToGet = 1;

while (inputstream.get(destination, numberOfLettersToGet)){
   //Do something.
}

我可以使用什么代替inputstream.get()

2 个答案:

答案 0 :(得分:1)

istream::get将字符作为整数返回,因此您只需将返回的字符作为字符串的下一个字符追加。 e.g。

while (string.push_back(inputstream.get()))
{ //...
}

答案 1 :(得分:1)

您可能希望使用read的{​​{1}}和gcount成员函数。 std::istream附加一个零终结符,当您阅读get时,这是不必要的。

std::string