c++ 中的常用 IO 流

常用 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()







        从实验楼收集的资料,感觉不错,收藏起来,方便使用。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值