c++输入流函数输出流函数

标准输入:键盘输入,程序读取 cin全局流对象
标准输出:程序读取,显示器输出 cout全局流对象
标注错误输出:cerr 没缓冲区
标注日志输出:clog 有缓冲区
把这个过程叫做流
输入输出之间都有一个缓冲区,数据是先存储在缓冲区当中的,读取数据是从缓冲区里面读取的。输出缓冲区对程序的读写要有个cout,不仅是换行,还是刷新输出缓冲区。在windows下面看不见,在linux下面可以看出差别
cin.get 从缓冲区拿数据,但是缓冲区堵塞,输入数据,就到缓冲区,然后就得到单个字符

标准输入流重点函数

//接收单个字符
void test01()
{
	char ch;
	cin.get(ch);  //ch=cin.get();
	cout << ch <<endl;
}
//接收字符串
void test02()
{
	char ch[20];
	cin.get(ch, 20);
	cout << ch << endl;
}
//接收一个字符串
void test03()
{
	char ch[20];
	//实际有三个参数,接受字符串为ch,个数20,结束字符(省略时默认为'\0')
	cin.getline(ch, 20);   
	cout << ch << endl;
}
//忽略字符
void test04()
{
	char ch;
	cin.get(ch);
	cout << ch << endl;
	//如果括号内不加参数,则省略单个字符
	//如果括号内加一个参数,忽略括号内的参数个数
	//如果括号内加两个参数,忽略括号内第一个参数的长度,
	//若在这个长度内找到第二个参数,则停止忽略,显示第二个参数后面的字符
	cin.ignore(10,'8');
	cin.get(ch);
	cout << ch << endl;
}
//看缓冲区里面的字符,而不取走
void test05()
{
	char ch;
	//观看缓冲区,返回第一个字符
	ch=cin.peek();
	if (ch >= '0'&&ch <= '9')
	{
		int number;
		cin >> number;
		cout << "输入的为是数字:" <<number<< endl;
	}
	else
	{
		char buf[256] = { 0 };
		cin >> buf;
		cout << "输入的不是位数字:" << buf << endl;
	}		
}
//将缓冲区取出的字符放回缓冲区
void test06()
{
	char ch;
	cin.get(ch);
	if (ch >= '0'&&ch <= '9')
	{
		//将从缓冲区取出的字符,重新放回
		cin.putback(ch);
		int number;
		cin >> number;
		cout << "输入的是" << number << endl;
	}
}

标准输出流重点函数

void test02()
{
	//通过成员方式
	int number = 10;
	//卸载掉当前默认的10进制输出
	cout.unsetf(ios::dec);
	//八进制输出
	cout.setf(ios::oct);
	cout << number << endl;
	//显示所有
	cout.setf(ios::showbase);
	cout << number << endl;
	//设置位宽
	cout.width(10);
	//设置填充
	cout.fill('*');
	//设置左对齐
	cout.setf(ios::left);
	cout << number << endl;

	//通过控制符引入头文件<iomanip>
	int number2 = 10;
	cout << hex << setiosflags(ios::showbase) 
		 << setw(10) <<setiosflags(ios::left)
		 << setfill('~') << number2 << endl;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值