c++输入输出流

输入输出流
  • 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*******
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值