1

Instead of:

stringstream szBuffer;
szBuffer>>string;
myFunc(string);

How do I do like:

muFunc(szBuffer.NextString());

I dont want to create a temp var just for passing it to a function.

4

1 回答 1

0

如果您想读取整个字符串:

// .str() returns a string with the contents of szBuffer
muFunc(szBuffer.str());
// Once you've taken the string out, clear it
szBuffer.str("");

如果要提取下一行(直到下一个 \n 字符),请使用istream::getline

// There are better ways to do this, but for the purposes of this
// demonstration we'll assume the lines aren't longer than 255 bytes
char buf[ 256 ];
szBuffer.getline(buf, sizeof(buf));
muFunc(buf);

getline() 也可以将分隔符作为第二个参数(默认为 \n),因此您可以逐字阅读。

于 2012-12-07T07:57:31.480 回答