今天主要学习了格式的输入与输出函数
单字符的输入与输出
一,getchar函数:
getchar
是输入一个字符
二,putchar函数
putchar
将一个字符输出
...........................................................................................................................................................
格式输入与输出
一,printf函数
1.你咋写我咋输出。
2.“%d”,占位符,形式由printf函数下一个数决定。
3.出现两个占位符, 占位符个数应与参数一致。
二,占位符代表的含义
1.%d,%n : 输出有符号十进制;
2.% o , u , x, X:输出无符号8进制,无符号16进制;
3.%e, E:输出以科学计数法表示的浮点型。
4.%m, n, f, :整体占m 格(包含小数点),取n位有效数字。(若m小于实际数值则忽略m且m可省)。
5.%g, G :用浮点型或科学计数法型短的一个输出。
6.%s:输出 const char* 字符串。
7.%p : 输出void*(万能指针)任何数的地址,专打地址。
8.%% :打百分号,eg:99%。
9.%ld : 输出8字节的数。
三,scanf函数
以上代表十进制有符号输入,取“ i ” 的地址。(指针传参)
注意:
1.scanf函数中取的是变量地址,而非变量名。
2.在输入字符时每个字符都应该与输入的字符相同。
3.scanf函数不知道是几字节,要区分单双精度。(“%lf”)("%f")且不可互换。
4.对于浮点型输入不得使用精度控制。
5.遇到非法输入会自动结束。
...........................................................................................................................................................
缓冲区:
scanf和getchar在读取数据时是从缓冲区内读取数据,而缓冲区位于键盘和scanf、getchar之间,在我们通过键盘输入abcdef密码并敲下回车键时,数据被送到了缓冲区,这时scanf读取字符串abcdef,所以此时只剩下 \n 在缓冲区内,所以getchar就会读取缓冲区内的 \n
为了避免这种情况,我们需要在scanf获取完abcdef后缓冲区内为空,所以这个时候需要做的就是清空缓冲区,这时我们可以在scanf读取完abcdef后立刻调用getchar函数将 ' \n '读走。所以这里我们需要通过循环来清空缓冲区。
...........................................................................................................................................................今天学习到此结束,明天见。