C++语言程序设计 第十一章流类库与输入/输出
第十一章 流类库与输入/输出 C++语言程序设计
C++语言程序设计 本章主要内容 O流的概念 标准输入输出 ●文件操作 x
C++语言程序设计 2 本章主要内容 ⚫ I/O流的概念 ⚫ 标准输入输出 ⚫ 文件操作
C++语言程序设计 1O流的概念 流是对输入输出的一个抽象表述。 程序通过从流中提取字符和向流中插入字 符来实现输入和输出。 ●IO流类库是一个提供输入输出功能的, 面向对象的类库。 x
C++语言程序设计 3 I/O流的概念 ⚫ 流是对输入/输出的一个抽象表述。 ⚫ 程序通过从流中提取字符和向流中插入字 符来实现输入和输出。 ⚫ I/O流类库是一个提供输入/输出功能的, 面向对象的类库
C++语言程序设计 1O流类库的层次结构 ios流基类 istream通用输入流类0 stream通用输出流类 iostream通用输入输出流类 ifstream输入文件流类 ofstream输出文件流类 x fstream输入输出文件流类
C++语言程序设计 4 I/O流类库的层次结构 ios 流基类 istream 通用输入流类 ostream通用输出流类 iostream 通用输入输出流类 ifstream输入文件流类 ofstream输出文件流类 fstream输入输出文件流类
C++语言程序设计 标准输入输出流对家 cout标准输出,默认输出设备屏幕 cerr标准错误输出,没有缓冲,发送给它 的内容立即被输出,默认输出设备屏幕。 clog类似于cerr,但是有缓冲,缓冲区满 时被输出,默认输出设备打印机。 cin标准输入,默认输入设备键盘 x
C++语言程序设计 5 标准输入输出流对象 –cout 标准输出,默认输出设备屏幕 –cerr 标准错误输出,没有缓冲,发送给它 的内容立即被输出,默认输出设备屏幕。 –clog 类似于cerr,但是有缓冲,缓冲区满 时被输出,默认输出设备打印机。 –cin标准输入,默认输入设备键盘
C++语言程序设计 运犷符 ●插入>)对于所有标准C++数据类 型都是预先设计好的,它是从一个输入流 对象获取字节最容易的方法。 x
C++语言程序设计 6 运算符 ⚫ 插入(>)对于所有标准C++数据类 型都是预先设计好的,它是从一个输入流 对象获取字节最容易的方法
C++语言程序设计 控制输出格式 成员函数方式 包含头文件 setprecision(n), setw(n), setfill (c),oct hex, dec, setiosflagso, resetiosflags( 0大
C++语言程序设计 7 控制输出格式 ⚫ 成员函数方式 包含头文件 precision(n),width(n),flags(c),flags(8), flags(16),flags(10),fill(c) ⚫ 用控制符 包含头文件 setprecision(n),setw(n),setfill (c),oct, hex,dec, setiosflags() ,resetiosflags()
C++语言程序设计 设置蕘教流的基教- dec、oct、hex和 netease #include #include > num //使用hex流操纵符显示十六进制整数 cout < num <<"in hex is: m hex<< num ( endl //使用oct流操纵符显示八进制整数 cout dec < num < in oct is:<< OC //使用 setbase流操纵符显示十进制整数 输出结果: cout < setbase (10)<< num in de enter a dec number: 37 d1 37 in hex is: 2 5 37 in oct is: 45 return 0; 37 in dec is 37
C++语言程序设计 8 设置整数流的基数—— dec、oct、hex和setbase #include #include using namespace std; int main() { int num; cout > num; //使用hex流操纵符显示十六进制整数 cout << num << " in hex is: " << hex<< num << endl; //使用oct流操纵符显示八进制整数 cout << dec << num << " in oct is: "<< oct << num << endl; //使用setbase流操纵符显示十进制整数 cout << setbase(10) << num << " in dec is: " << num << endl; return 0; } 输出结果: Enter a dec number:37 37 in hex is :25 37 in oct is :45 37 in dec is 37
C+程计设置浮点教精度 precisioniasetprecision inc lude iostream> *include iomanip> # include〈 cmath> using namespace std int main0//设置小数点后面的位数 i double root= sart(3.0) cout<" set by precision:n"< fixed;/使用 fixed精度 for (int i=0: i<=4: i++) 输出结果: I cout. precision (i): cout << rod Set by precision. return 0: 73 1.732 1.7321
C++语言程序设计 9 设置浮点数精度—— precision和setprecision #include #include #include using namespace std; int main()//设置小数点后面的位数 { double root = sqrt( 3.0 ); cout << " set by precision:\n" << fixed; //使用fixed精度 for (int i = 0; i <= 4; i++ ) { cout.precision( i ); cout << root << endl; } return 0; } 输出结果: Set by precision: 2 1.7 1.73 1.732 1.7321
C++语言程序设计 设置域宽: width和setW include Include using namespace std; void maino double values囗={123,3536,6537435824} char *namesi=turf,ssh","ZZz,"sSs] for(int i=0; i<4; i++) ∥设置域宽输出 i cout width(20) cout<< names[]<< setw(20)<< values[(]<<'In; y /(域宽设置仅对下一次流提取或流插入操作有效。默认不是用格 补。不带参数的wdh函数返回当前域宽
C++语言程序设计 10 设置域宽:width和setw #include #include using namespace std; void main() { double values[] = {1.23,35.36,653.7,4358.24}; char *names[] = {"zrf", "ssh", "zzz", "sss"}; for(int i=0;i<4;i++) //设置域宽输出 { cout.width(20); cout<< names[i] << setw(20) << values[i] <<'\n'; } } //域宽设置仅对下一次流提取或流插入操作有效。默认不足用空格 补。不带参数的width函数返回当前域宽