C++中的IO流提供了多种类型用于不同类型的输入输出操作。以下是C++中IO流的主要用法:
控制台输入、输出流:
std::cin:用于从控制台读取输入。例如,int num; std::cin >> num; 可以从控制台读取一个整数。std::cout:用于向控制台输出数据。例如,std::cout << "Hello, World!" << std::endl; 可以向控制台输出字符串并换行。
文件流:
std::ifstream:用于从文件读取数据。它派生自istream,因此支持所有输入流的操作。例如,std::ifstream file; 可以打开一个名为”example.txt”的文件进行读取。std::ofstream:用于向文件写入数据。它派生自ostream,因此支持所有输出流的操作。例如,std::ofstream file; 可以打开一个名为”output.txt”的文件进行写入。std::fstream:同时支持文件的读写操作。它派生自iostream,结合了ifstream和ofstream的功能。
字符串流:
std::istringstream:用于从字符串读取数据。它派生自istream,可以将一个字符串当作输入流来处理。例如,std::istringstream iss; 可以将字符串”123 456”当作输入流来读取整数或其他数据。std::ostringstream:用于向字符串写入数据。它派生自ostream,可以将数据写入到一个字符串中。例如,std::ostringstream oss; oss << "Sum: " << ; 可以将字符串”Sum: 3”写入到oss对象中。std::stringstream:同时支持字符串的读写操作。它派生自iostream,结合了istringstream和ostringstream的功能。
流操作的头文件:
控制台输入、输出流以及字符串流的操作通常实现于<iostream>头文件中。文件流的操作实现于<fstream>头文件中。
文件读写模式:
在打开文件进行读写时,可以指定文本模式或二进制模式。文本模式适用于文本文件的读写,而二进制模式适用于二进制数据的读写,如图像文件。例如,std::ifstream file; 可以以二进制模式打开一个名为”image.png”的文件。
注意:虽然std::cin和std::cout常用于控制台输入输出,但在某些性能敏感的场景下,可能会推荐使用scanf和printf,因为它们通常具有更高的性能。然而,std::cin和std::cout提供了更好的类型安全和易用性。