C ++中的“string”,“stream”和“stringstream”类是什么?

时间:2008-11-23 07:08:53

标签: c++ stl

我想知道c ++中string和stream之间的区别是什么,以及stringstream是什么?

4 个答案:

答案 0 :(得分:8)

  • istreamostream:流数据接口(文件,套接字等)
  • istringstream:包裹字符串并提供其内容的istream
  • ostringstreamostream,用于保存以字符串形式写入内容的内容

示例:

istringstream datastream("1 2 3");

int val;
datastream >> val;
cout << val << endl; // prints 1

datastream >> val;
cout << val << endl; // prints 2

datastream >> val;
cout << val << endl; // prints 3


ostringstream outstream;
outstream << 1 << "+" << 2 << "=" << 3;
cout << outstream.str() << endl; // prints "1+2=3"

答案 1 :(得分:5)

非常非正式:字符串是一组字符,流是一种操纵移动数据的工具。字符串流是一个c ++类,它允许您使用字符串作为流的数据源和目标。

答案 2 :(得分:3)

我的猜测是,字符串流就像一个iostream,但不是写入或读取文件,而是写入或读取字符串。

答案 3 :(得分:1)

在C和/或Unix中,基本的比喻是文件。标准输出,标准输入,网络套接字都使用文件描述符表示。因此,您可以使用fprintf()写入这些“文件”,而不知道底层是什么。

作为一种更安全,更酷的选择,C ++提出了iostream作为基本隐喻,它几乎使用<<运算符构建到语言中。同样,文件,字符串和(带库)网络可以使用流来访问,而不知道它是什么。