@TOC
C++IO流
C++流
流就是若干字节组成字节序列,流操作就是从一个移动到另一个的过程。
流中的内容:二进制数据ASCII码
流类体系
C++中用类实现所有流类操作
1.标准的输入输出流
2.字符流
3.文件流
标准的输出输入流
对象 类型 作用
cin 标准输入 从键盘读取,可以重定向
cout 标准输出 输出到控制台,可以重定向
cerr 标准错误输出 输出到控制台,不可以重定向
clog 标准错误输出 输出到控制台,可重定向
重定向:可以改变函数,使得函数变成另外一个 功能。
include<iostream> using namespace std; int main() { cout << "标准的输入输出" << endl; cerr << "错误的输入输出" << endl; clog << "错误的输入输出" << endl; system("pause"); return 0; }
字符和字符串的输入和输出
cin成员函数
1.get()输入一个字符
2.getline()输入一个字符串
cout成员函数
put():输出一个字符
write():输出一个字符串
#include<iostream> using namespace std; int main() { int number = cin.get(); cout.put(number); char arr1[10]; while (getchar() != '\n'); { cin.getline(arr1, 10); } cout << arr1; system("pause"); return 0; }
C++格式控制
1.包含头文件:iomanip
2.有两种方法:通过对象形式,通过成员函数的形式
对象形式 实际意义 1.setbase(n) 设置多少进制输出整数(参数是8和16) 2.setw(n) 设置输出数据宽度(默认对齐是右对齐,不足补空格) 3.setiosflags(ios::left) 设置对齐方式左对齐(ios::left),右对齐(ios::right) 4.setprecision(n) 单纯使用是控制有效位数,如果控制小数位数,结合fixed使用。 5.setfill(n) 填充字符
#include<iostream> #include<iomanip> using namespace std; int main() { cout << setbase(16) << 32 << endl; cout << setbase(8) << 32 << endl; cout << setw(10) << "姓名" << setw(10) << "学号" << endl; cout << setiosflags(ios::left); cout << setw(10) << "姓名" << setw(10) << "学号" << endl; cout << setprecision(4) << 5.222229 << endl; // 保留4位有效数字 cout << fixed << setprecision(2) << 5.2222229 << endl; //保留2位小数 cout << setiosflags(ios::scientific) << 92.2222 << endl; //科学计数法 system("pause"); return 0; }
当然也可以用做成员函数的方法去用
#include<iostream> using namespace std; int main() { cout.precision(4); cout << 6.22 << endl; cout.width(9); cout << "姓名"; cout.width(9); cout << "学号"; system("pause"); return 0; }