我想知道c ++中string和stream之间的区别是什么,以及stringstream是什么?
答案 0 :(得分:8)
istream
和ostream
:流数据接口(文件,套接字等)istringstream
:包裹字符串并提供其内容的istream
ostringstream
:ostream
,用于保存以字符串形式写入内容的内容示例:
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作为基本隐喻,它几乎使用<<
运算符构建到语言中。同样,文件,字符串和(带库)网络可以使用流来访问,而不知道它是什么。