输入输出流
- cout 标准输出流 全局流对象 有缓冲区 输出到显示器
- cin 标准输入流 全局流对象 有缓冲区 输出到显示器
- cerr 标准错误流 没有缓冲区 输出到显示器
- clog 标准日志流 有缓冲区 输出到显示器
cin.get()
char ch1;
cin.get(ch1); //读取一个字符,vs2019报错(参数不匹配)
char buf[256];
cin.get(buf, 256); //从缓冲区读取一个字符串
cin.getline(buf, 256); //读取一行数据 不读换行符
cin.ignore()
char ch2[10] = { 0 };
cin >> ch2;
//cin.ignore(2); ---1---
//cin.in=gnore(5); ---2---
cin.in=gnore(5, '\n'); ---3---
cout << ch2 << endl;
- 个人总结:cin读取数据以换行结束,ignore() 的作用就是忽略一次缓冲区的换行结束符读取
cin.peek()
- 功能:返回输入的第一个字符
cin.putback()
char ch3[20] = { 0 };
cout << "输入:" << endl;
cin.get(ch3,4); // -1-
cout << ch3 << endl;
cin.putback(5); // -2-
//“std::basic_istream<char,std::char_traits<char>>::putback”: 函数不接受 0 个参数
cout << ch3 << endl;
- 百度的结果:putback是将字符放回到输入流中,一般输入流中字符的长度是不变的。 putback会把cin刚刚“吃”进来的字符再“吐”回去,也就是说,下次cin>>x的时候,刚刚得到的那个字符还会参数输入。
cout.flush()
- 功能:刷新缓冲区。
cout.put()
cout.put('h').put('el').put('lo') << endl;
cout.put('h').put('ello') << endl;
cout.put('h').put('e').put('l').put('l').put('o') << endl;
hlo
ho
hello
- 总结:put() 只读取最后一个字符,并且支持链式编程。
cout.write()
- 功能:输入一个字符串
cout.write("Hello!", strlen("Hello!")) << endl;
格式化输出
int number = 10;
cout << number << " 原始输出方式十进制" << endl;
cout.unsetf(ios::dec); //卸载十进制输出方式
cout << number << " 卸载十进制输出方式" << endl;
cout.setf(ios::oct); //设置八进制输出方式
cout << number << " 设置八进制输出方式" << endl;
cout.setf(ios::showbase); //设置输出进制样式
cout << number << " 设置输出进制样式" << endl;
cout.unsetf(ios::oct); //卸载八进制输出方式
cout << number << " 卸载八进制输出方式" << endl;
cout.setf(ios::hex); //设置十六进制输出方式
cout << number << " 设置十六进制输出方式" << endl;
cout.width(10); //设置输出宽度
cout.fill('*'); //设置 * 填充
cout << number << endl;
cout.width(10); //设置输出宽度
cout.fill('*'); //设置 * 填充
cout.setf(ios::left); //设置左对齐,默认右对齐
cout << number << endl;
10 原始输出方式十进制
10 卸载十进制输出方式
12 设置八进制输出方式
012 设置输出进制样式
10 卸载八进制输出方式
0xa 设置十六进制输出方式
*******0xa
0xa*******