c++标准库sstream的用法

库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。另外,每个类都有一个对应的宽字符集版本。注意,使用string对象来代替字符数组。这样可以避免缓冲区溢出的危险。而且,传入参数和目标对象的类型被自动推导出来,即使使用了不正确的格式化符也没有危险。

istringstream的用法

#include        // std::string
#include      // std::cout
#include       // std::istringstream

int main () {
  std::istringstream iss;
  std::string strvalues = "32 240 2 1450";

  iss.str (strvalues);

  for (int n=0; n<4; n++)
  {
    int val;
    iss >> val;
    std::cout << val << '\n';
  }
  std::cout << "Finished writing the numbers in: ";
  std::cout << iss.str() << '\n';
  return 0;
stringstream的用法
// swapping ostringstream objects
#include        // std::string
#include      // std::cout
#include       // std::stringstream

int main () {

  std::stringstream ss;

  ss << 100 << ' ' << 200;

  int foo,bar;
  ss >> foo >> bar;

  std::cout << "foo: " << foo << '\n';
  std::cout << "bar: " << bar << '\n';

  return 0;
}

leetcode上有一道题目,利用stringstream可以很好地解决:leetcode

class Solution {
public:
    int countSegments(string s) {
    stringstream input(s);
	int count = 0;
	string temp;
	while (input>>temp)
	{
		count++;
	}
	return count;
    }
};


你可能感兴趣的:(c++)