getchar和putchar:getchar和putchar是相配套使用的。这两个是C语言里面的库函数,C++兼容C语言,可在头文件“cstdio”中找到。getchar:功能:读取一个字符,他是没有参数的,他有返回值,他读取的是字符,返回的是该字符的ASCII值,他一次读取只会读取一个字符。putchar:功能:输出getchar读取到字符,使用方法:将getchar的返回值当作参数,然后输出参数值对应的字符。不论是getchar还是putchar,他们如果读取或者是输出的操作失败,返回值就是EOF(-1),操作:ctrl+z。
printf函数:printf函数可以通过占位符实现输出的格式化,接下来主要讲一下关于printf函数占位符的两个限定,一是限定宽度,二是限定小数位数,限定宽度:意思是输出时,至少要输出限定的宽度,有以下两种要解释的情况,不够宽度:由空格来填补;超过宽度:按照实际的宽度来输出就行。限定小数位数:浮点数默认输出时会输出小数点后六位,限定小数位数就可以实现想保留几位小数就保留几位小数。此外,两个限定值是可以用 * (星号)来先”占位“的,然后,在用想要的值来代替他(注意:被占的地要与想替换的值一一对应奥)。再者,讲一下编译器默认是向右对齐的,想要实现向左对齐,就要在百分号(%)后面加一个负号(-),这要就可以实现向左对齐了。
scanf函数:scanf函数用于读取用户的键盘输入。scanf给定的格式要与键盘输入的格式严格匹配,不然,可能得不到想要的数据,而且,在占位符之后一般不用'\n'的,通常只在输出时使用。scanf函数在处理数值占位符时,会自动过滤空白字符。用户一般将数据通过键盘输入到屏幕上,按下回车键之后,数据进入到缓存,scanf函数在缓存中对数据进行解读,会按照占位符来仔细解读符合占位符的数值,一一顺序解读。scanf和printf的占位符绝大部分都是一样的,只有一个注意点:在printf函数里面,double和float类型的占位符都可以用 %f ,double类型也可以用 %lf ,比较松,而在scanf函数中,double类型必须用 %lf ,而float类型用 %f ,规定的很死。此外,再谈谈 %c:这是一个给字符占位的占位符,他比较特殊,他在读取时,是不忽略空格的,他会认为空格是一个字符,然后读取掉,如果想让%c可以忽略跳过空格,那么只要在%c之前加一个空格,这样的操作可以强制跳过空格来读取字符,当%c前面有其他占位符时,依旧只要在%c前面加一个空格,就可以强制跳过空白字符,读取其他字符。scanf函数的返回值是整数,表示的是成功读取的变量个数,当在成功读取任何数据前,遇到读取错误或读取到文件末尾时,会返回EOF(-1),操作:ctrl+z。一般scanf的返回值用于多组数据输入的竞赛题目。
cin和cout两个流对象:在C++中,数据似乎不再像C语言中类型明确了。用户用键盘输入数据,以及数据打印在屏幕上,数据都是以字符流的形式在操作,cin就是标准输入流,配的时流提取操作符(>>),这样一看,名字起得就很形象了,在字符流里面将数据提取出来用,而cout配的流插入操作符(<<),就是将处理完的数据返回给字符流当中,所以叫做流插入操作符。字符流、字符流,就是连接出入口(打印在屏幕,用键盘输入)的地方的数据都是字符。cin和cout都是可以自动识别变量类型的,操作的时候可以省心。
cout的输出格式(加餐):setw设置字段宽度(只对紧接着的值有用),;setfill设置填充字符,(当数据小于设置的宽度时,会有空格填补,setfill可以将空格填补成想要的字符),
;fixed固定小数点,让数据不会变成科学计数法表示,
;scientific使浮点数以科学计数法表示,
;setprecision设置小数位数,但是先要固定小数点,
;dec以十进制显示整数(默认),
;hex以十六进制格式显示整数,
;oct以八进制格式显示整数,
;left向左对齐,
;right向右对齐(默认),
。