c++ 中的常用 IO 流

来源:互联网 发布:css书籍推荐知乎 编辑:程序博客网 时间:2024/06/04 01:01

常用 IO 库

我们常说的 C++ IO 库一般指 iostream, fstream, sstream

  • iostream 包含了 istream(从流读)/ostream(从流写)/iostream(读写流)
  • fstream 包含了 ifstream(从文件读)/ofstream(condition 文件写)/fstream(读写文件)
  • sstream 包含了 istringstream(从 string 读)/ostringstream(向 string 写)/stringstream(读写 string)

其实标准库还有宽字符版本,但我们这里不讨论,有兴趣的话可以参考参考链接。

iostreamfstream 是两个比较常用的IO 库,我们这里不再回顾,这里简单回顾一下 sstream

如果你熟悉 C 语言,就知道将 int 转换为 string 类型其实是一件很麻烦的事情,虽然标准库中提供了 itoa() 这种函数,但是依然需要对转换后的 C 风格字符串(char *)通过 std::string 的构造函数构造为 std::string。如果使用流操作,那么这将变得异常的简单:

#include <string>#include <sstream>#include <iostrea>int main() {    // std::stringstream 支持读写    std::stringstream stream;    std::string result;    int number = 12345;    stream << number;   // 将 number 输入到 stream    stream >> results;  // 从 stream 读取到 result    std::cout < result << std::endl; // 将输出为字符串"12345"}

如果希望让sstream 和 C 风格的字符串打交道,同样也可以:

#include <sstream>#include <iostream> int main(){    std::stringstream stream;    char result[6];    stream << 12345;    stream >> result;    std::cout << result << std::endl;}

需要注意的一点就是,在进行多次IO 操作时,如果希望结果彼此不影响,需要对 stream 对象进行一次 clear() 操作:

stream.clear()        从实验楼收集的资料,感觉不错,收藏起来,方便使用。 
0 0
原创粉丝点击