C++输入输出:cin.get(),cin.getline(),格式控制等

1、强行刷新缓冲区控制符flush与endl:

std::cout<< std::flush; //刷新缓冲区
std::cout<< std::endl; //刷新缓冲区,并插入一个换行符

2、修改输出格式:
ostream类从ios类派生,而ios类从ios_base类派生而来。ios_base存储了描述格式状态的信息,因此可以通过ios_base成员函数控制输出格式
a) 以十六进制显示:

hex(cout); //cout<<hex; ostream重载了<<运算符,使得两函数等价。

b) 调整字段宽度:

int original_width = cout.width(5); //设置字段宽度为5,返回原始宽度。

默认右对齐,空格填充;只影响下一条语句
c) 改变填充字符:

cout.fill('*');

影响之后所有语句。一旦设置长期有效,直到重新设置。
d) 设置浮点数输出精度:

cout.precision(2); //默认模式设置:显示的总位数,不包括小数点

cout<<fixed;
cout.precision(2); //定点模式设置:显示小数点后两位

e) 左对齐:

cout<<left;

其余设置方法见C++ Primer Plus 17.2.4(7)小节

3、单字符输入cin.get()与cin.get(char&):

char abc;
abc = cin.get(); // 返回int,因此不可连用
cin.get(abc); // 返回cin引用,因此可以连用
while(abc != '\n'){
	cout << abc;
	cin.get(abc);
} // get()不跳过空格、制表符、换行符等,因此可以跳出循环。
cin>>abc;
while(abc != '\n'){
	cout << abc;
	cin >> abc;
} // >>跳过空格、制表符、换行符等,因此为死循环。

在这里插入图片描述
4、字符串输入cin.get(char*, int)与cin.getline(char*, int):
在这里插入图片描述
意外字符串输入:
在这里插入图片描述
参考资料:C++ Primer Plus 17.3.3

总结

1、强行刷新缓冲区控制符flush与endl。
2、修改输出格式见上文。
3、需要跳过空格、换行符则使用<<,不跳过则get()或get(char&)。
4、字符串输入,可通过第三个参数自定义分隔符cin.getline(char*, int,char)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值