2012/2/11 《C++ Primer Plus》第十七章:输入、输出和文件 学习笔记
来源:互联网 发布:免费幼儿识字软件 编辑:程序博客网 时间:2024/05/16 10:21
《C++ Primer Plus》第十七章学习笔记
193:<<操作符,被ostream重载时,被称为插入操作符(insertion operator),而不是左移操作符。
194:>>操作符,被istream重载时,被称为抽取操作符(extraction operator),而不是右移操作符。
195:如果要输出char指针p的地址,则需要强制转换,(void*)p、(int*)p等都可以。
196:其他ostream方法:
1、ostream& put(char) ,用法:cout.put(‘A’), cout.put(65);
2、basic_ostream<charT, traits>& write(const char_type* s, streamsize n), 用法:第一个参数为要显示字符串地址,第二个参数指出要显示多少字符,即使超出了字符串边界。
197:width()方法只影响接下来显示的一个项目,然后字段宽度将恢复为默认值。默认情况下,cout用空格填充字段中未被使用的部分,可以用fill()成员函数来改变填充字符,例如cout.fill(‘*'),与width()不同,新的填充字符将一直有效,直到更改它为止。
198:precision(n)成员函数将有效数字设置为n位,与fill()类似,新的精度设置将一直有效直到被改变为止。
199:cout.setf(ios_base::showpoint) 用来打印末尾的0和小数点。
200:一个参数的setf()中的一些格式常量:
两个参数的setf()中的参数:
201:一些标准控制符:
详见:http://www.cplusplus.com/reference/iostream/manipulators/
202:
int a;
cin >> a;
若输入123Z,则将读取字符1、2、3,将Z留在输入流当中。
203:流状态:
204:设置流状态有一个非常重要的后果:流将对后面的输入或输出关闭。如果希望程序在流状态位被设置后能够读取后面的输入,就必须将流状态重置为良好,可以通过clear()方法。
205:由于历史原因,fail()方法在failbit或eofbit被设置时返回true(前者可能因为输入不匹配,后者因为到达文件尾)。
206:
207:cin.ignore(255,’\n’)将读取并丢弃接下来的255个字符或直到到达第一个换行符。它的原型为:istream& ignore(int = 1, int = EOF)。
208:
表中的get()缺了考虑读取最大字符数的情况,即:“当前的C++:如果读取了最大数目的字符,且行中还有其它字符,则不设置failbit(和getline不同)”。
209:以默认模式打开文件进行输出将自动把文件的长度截短为零,这相当于删除已有的内容。
210:较新的C++实现提供了一种更好的检查文件是否被打开的方法——is_open()。
211:
212:对于字符来说,二进制表示与文件表示是一样的,即字符的ASCII码的二进制表示。对于数字来说,二进制表示和文本表示有很大的差别,见下图:
212:二进制文件简单用法:
#include <iostream>#include <fstream>using namespace std;const int size = 20;struct planet{char name[size];double pop;double g;};int main(){ofstream fout("out.txt",ios_base::out|ios_base::binary);planet p1 = {"Earth",60,10};fout.write( (char*)&p1, sizeof p1);fout.close();ifstream fin("out.txt",ios_base::in|ios_base::binary);planet p2;fin.read( (char*)&p2, sizeof p2);cout << p2.name << " " << p2.pop << " " << p2.g << endl;fin.close();return 0;}
书中的错误:
P671 表格第一行少了一个”)”;
P675 表格倒数第三行的”exceptios(isostate ex)”应改为”exceptions(iostate ex)”;
P692 表格倒数4行的开头4个”ios_base::out”均错误。
- 2012/2/11 《C++ Primer Plus》第十七章:输入、输出和文件 学习笔记
- 《C++ primer plus》第十七章 输入、输出和文件(一):输入和输出 学习笔记
- 《C++ primer plus》第十七章 输入、输出和文件(二):文件的输入和输出 学习笔记
- c++primer plus第十七章-cin输入、cout输出和文件I/O
- 《C++ Primer Plus(第六版)》(39)(第十七章 输入、输出和文件 笔记2)
- 《C++ Primer Plus(第六版)》(38)(第十七章 输入、输出和文件 笔记1)
- 《C++ Primer Plus(第六版)》(42)(第十七章 输入、输出和文件 编程练习和答案2)
- 【C++ primer】第十七章 输入、输出和文件
- 《C++ Primer Plus(第六版)》(40)(第十七章 输入、输出和文件 复习题和答案)
- 《C++ Primer Plus(第六版)》(41)(第十七章 输入、输出和文件 编程练习和答案1)
- C++ Primer Plus 第17章 输入,输出和文件
- c++primer plus第十七章-输入和输出概述
- c++primer plus第十七章-文件输入和输出
- C++ Primer Plus 之 输入、输出和文件
- 【读书笔记:C++ primer plus 第六版 中文版】第17章 输入、输出和文件
- C Primer Plus学习笔记----第四章字符串和格式化输入/输出
- C++primer plus第十七章编程练习
- c++ primer plus 第十七章 输入 输出 文件 IO iostream fstream
- 各种创建单例模式的优缺点
- 为什么你需要设计和维护一套自我移动标准?
- 【简明笔记】循环条件的优化
- Sizes of iPhone UI Elements
- VC简单备忘录项目(2) --建立拆分窗口
- 2012/2/11 《C++ Primer Plus》第十七章:输入、输出和文件 学习笔记
- 文档-视图结构下MFC程序的全屏显示
- 迈出从3K到1W的重要一步——掌握设计模式
- ProcessShellCommand()函数
- 内聚的极限: 软件开发的不确定性原理
- 《软件调试分析技术》学习笔记
- 情人节 3d 玫瑰javascript 代码实现 效果很华丽
- 《软件调试分析技术》学习笔记
- Ext.XTemplate模板学习