Blog·Tanky WooABOUTRSS

《C++标准程序库》学习笔记11 -- 第十三章

01 Feb 2011
这篇博客是从旧博客 WordPress 迁移过来,内容可能存在转换异常。

这一章是比较重要,也比较实用的一章,讲了输入输出的一些基础,比较系统。

按照面向对象原则,stream是由某个类别定义出来的具有特定性质的对象。

输出操作被解读为“数据流入stream”

输入操作被解读为“数据流出stream”

下图是Stream Class的阶层体系:

stream

如果一个型别为void*的参数被传递至output操作符,其地址将被打印出来。

eg.

#include 
using namespace std;

int main()
{
    freopen("out.txt", "w", stdout);
    char* cstr = "hello";
    cout << "C-string " << cstr << " is located at address: " << static_cast(cstr) << endl;
    return 0;
}

输出:

C-string hello is located at address: 00417828

Stream的状态

状态有:goodbit, eofbit, failbit, badbit(badbit代表比failbit更严重的错误)

一些处理状态的成员函数: good(), eof(), fail(), bad(), rdstate(), clear(), clear(state), setstate(state)

用于布尔表达式的stream操作符: operator void* () ,  operator !()

(以下参数均未写出)

用于输入的成员函数:get(), getline(), read(), readsome()

用于输出的成员函数:put(), write(), flush()

格式化

这一节很重要,也很强大。都比较常用,一定要记住并且熟练掌握。

文件存取

同第五点,要熟练掌握!

因为时间的原因,这一章大概看到645面,后面的包括国际化(第十五章)暂时不准备看,等以后有时间的再看。