【CPP】大一C++课本知识记录 第三篇 简单的输入输出

本文介绍了C++中iostream库的使用,包括如何利用iomanip设置字符宽度、转换整数进制、开启和关闭科学计数法显示,以及处理输入数据的方法,如忽略特定数量的字符和读取分隔符。通过实例展示了这些控制技巧在实际编程中的应用。
摘要由CSDN通过智能技术生成

设置字符宽度

iomanip 头文件里的 setw() 函数来设置宽度,括号里填设置的宽度,应用在cout语句里,如下:

#include<iostream>
#include<iomanip>
using namespace std;
int main(){
	int x=12,y=13,z=14,a=123,b=145,c=156;
	cout<<setw(4)<<x<<setw(4)<<y<<setw(4)<<z<<endl;
	cout<<setw(4)<<a<<setw(4)<<b<<setw(4)<<c<<endl;
	return 0;
}
/*输出如下:
  12  13  14
 123 145 156
*/

 注意

       括号里设置宽度只能填一个正整数或结果为正整数的表达式;

       只对紧跟其后的一个数有效;

       当给定宽度大于实际数据位数时,数据向右对齐,左边留出空格;

       且设置的宽度小于实际宽度时,按实际输出;

转换整数进制

类似于setw()函数用法,但只用一个进制标识符声明,且声明后若无其他进制声明,则默认接下来的输入或输出都为这种进制,dec表示十进制,hex表示十六进制,oct表示八进制,具体用法如下:

#include<iostream>
using namespace std;
int main(){
	int a=15,b=16,c=17,d=100;
	cout<<hex<<a<<" "<<b<<" "<<oct<<c<<" "<<d<<endl;
	return 0;
}
/*输出结果如下:
f 10 21 144
*/

设置科学计数法显示

       调用系统函数来开启和结束科学计数法;

       开启的函数为cout.setf(ios::scientific,ios::floatfield); 

       结束的函数为cout.unsetf(ios::scientific);

       开启和结束间的所有实数输出都表现为科学计数法格式,见下:

#include<iostream>
using namespace std;
int main(){
	double a=1.4141414,b=654.321;
	cout.setf(ios::scientific,ios::floatfield);
	cout<<a<<endl<<b<<endl;
	cout.unsetf(ios::scientific);
	return 0;
}
/*输出如下:
1.414141e+000
6.543210e+000
*/

处理输入的字符数据

一般来说,输入流会按照分隔符来将输入的数据分别赋给对应位置的变量,但输入字符数据时有一个例外,如下:

#include<iostream>
using namespace std;
int main(){
	int a,b;
	char c,d;
	cin>>a>>b>>c>>d;
	cout<<a<<" "<<b<<" "<<c<<" "<<d<<endl;
	return 0;
}
/*上一行是输入,下一行是输出:
12 34 5678
12 34 5 6
*/

字符型变量只会认一个字符,所以就分别领走了5和6,剩下的78没有变量来认领,就会被遗弃;

忽略接受某一数量的字符数据

在描述输入的时候使用函数 cin.ignore()括号里填要忽略的字符的个数,就可以在这个位置跳过某些字符数据的读取

#include<iostream>
using namespace std;
int main(){
	int a,b;
	char c,d;
	cin>>a>>b;
	cin.ignore(3);
	cin>>c>>d;
	cout<<a<<" "<<b<<" "<<c<<" "<<d<<endl;
	return 0;
}
/*
12 34 5678
12 34 7 8
*/

从上面可以看到,读取时跳过了空格,5,6,所以c领走了7,d领走了8;

读取分隔符作为字符

使用函数 cin.get() 作为输入流,括号里填某个变量,就会按照输入顺序来将输入的字符或分隔符直接赋值给变量;

#include<iostream>
using namespace std;
int main(){
	char c,d;
	cin.get(c);
	cin.get(d);
	cout<<c<<" "<<d<<endl;
	return 0;
}
/*
 2
  2
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值