在 C++ 中创建 istream 和 ostream 对象
Create istream and ostream objects in C++
我读到 cout 和 cin 是 类 std::istream 和 std::ostream 的对象。可以有像 cout 和 cin 这样的用户定义对象吗?
例如。
我怎样才能做这样的事情:
ostream obj;
obj<<"string"<<endl;
编辑 1:我想定义一个可以复制 cout 和 cin 而不会弄乱它们的内置定义的对象。
要处理字符串,我建议使用 std::stringstream。
std::stringstream class 派生自istream。
std::stringstream obj;
obj << "Hello World" << endl;
// You can convert it to a string afterwards
std::string myString = obj.str();
是的,您可以创建任何您想要的流。
由于流是具有源和接收器的数据流,因此您通常希望使用以下任一方法:
std::stringstream
- 自己添加数据,以流形式访问
std::{i,o}fstream
- 数据来自/进入文件
std::cout
和 std::cin
是恰好分别连接到 STDOUT 和 STDIN 的流的特定实例,但没有理由不能创建自己的流。
您只需要准确了解您实际希望他们做什么。
我读到 cout 和 cin 是 类 std::istream 和 std::ostream 的对象。可以有像 cout 和 cin 这样的用户定义对象吗?
例如。 我怎样才能做这样的事情:
ostream obj;
obj<<"string"<<endl;
编辑 1:我想定义一个可以复制 cout 和 cin 而不会弄乱它们的内置定义的对象。
要处理字符串,我建议使用 std::stringstream。
std::stringstream class 派生自istream。
std::stringstream obj;
obj << "Hello World" << endl;
// You can convert it to a string afterwards
std::string myString = obj.str();
是的,您可以创建任何您想要的流。
由于流是具有源和接收器的数据流,因此您通常希望使用以下任一方法:
std::stringstream
- 自己添加数据,以流形式访问std::{i,o}fstream
- 数据来自/进入文件
std::cout
和 std::cin
是恰好分别连接到 STDOUT 和 STDIN 的流的特定实例,但没有理由不能创建自己的流。
您只需要准确了解您实际希望他们做什么。