C++ Primer 第五版 第一章总结

本文介绍了C++中的iostream库,包括输入输出流的基础类型istream和ostream,以及标准输入cin和标准输出cout等预定义对象。讨论了输入输出运算符的功能与操纵符endl的作用,解释了命名空间std如何避免名字冲突。此外,还提供了使用cin读取不确定数量数据的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   由于第一章只是简单介绍,我就没什么好总结的。于是,我就写一些我觉得自己要记住和自己以前不知道的知识点吧。

   1. iostream库包含两个基础类型 istream 和 ostream,分别表示输入流和输出流。一个流就是一个字符序列,是从IO设备读出或写入IO设备的。术语“流”(stream)想要表达的是,随着时间的推移,字符是顺序生成或消耗的。

    2. iostream库定义了4个IO对象。为了处理输入,此库定义了一个名为 cin 的istream类型的对象。这个对象也被称为标准输入。对于输出,此库定义了一个名为 cout 的 ostream类型的对象。此对象也被称为标准输出。标准库还定义了其他两个ostream对象,名为 cerr 和 clog,通常用 cerr 来输出警告和错误消息,用 clog 来输出程序运行时的一般性信息。

   3. 输出运算符(<<)的计算结果是其左侧运算对象,输入运算符(>>)与输出运算符类似,也是返回左侧运算对象作为其计算结果。标准库定义了不同版本的输入输出运算符,来处理不同类型的运算对象。我觉得就是对输入输出运算符进行运算符重载。其实我有个疑问,那这个输入输出运算符不就是和左右移位运算符一样了吗? 

   4. endl是一个操纵符。写入endl的效果是结束当前行,并将与设备关联的缓冲区(buffer)中的内容刷到设备中。缓冲刷新操作可以保证到目前为止程序所产生的所有输出都真正写入到输出流中,而不是仅停留在内存中等待写入流。

   5. 命名空间可以帮助我们避免不经意的名字定义冲突,以及使用库中相同名字导致的冲突。标准库定义的所有名字都在命名空间  std中。作用域运算符是 :: 。

   6. 在C++中,用 cin 来读取数量不定的数据时,通常的写法是:

while(std::cin >> value)

    这段代码中,循环地从标准输入( cin )中读取数据。因为 >> 运算符的结果为左侧运算对象,所以也就是 cin。因此循环的判断条件是 cin 对象,而当我们使用一个istream对象作为条件时,其效果是检测流的状态。如果流是有效的,即流未遇到错误,那么检测成功,循环继续执行。当遇到文件结束符(EOF),或遇到一个无效输入时(例如读入的值不是一个整数),istream对象的状态就会变为无效。处于无效状态的istream对象会使条件变为假。

  7. 标准库头文件通常不带后缀。编译器一般不关心头文件名的形式,但有的IDE对此有特定要求。

      

 

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值