title: scanf格式化问题
date: 2020-01-12 19:42:53
tags: 蓝桥杯试题
空白字符(white space)。一般,程序中所指的空白字符是指空格(space),回车(enter)和指标符(table)
-
整数输入%d
在 “%d ” 里是一个%d加一个空格,这是程序读入数据时的格式,这个格式是什么意思呢? 这个格式的意思是说是在读完一个整数后,格式中的空格还需要匹配一次有效的输入,就是需要再读一个整数。scanf默认的分割符是所有的空白字符(空格,回车和指标符都行)。也就是说如果一个scanf函数中出scanf("%d%d",&a,&b),那么用任何一个空白字符来分隔两个整数a,b的值,变量a,b都可以接收到正确的输入。
-
字符型输入%c
scanf在处理对字符数据的输入时,既不会忽略前导空白字符,默认也没有任何分隔字符。所有的字符,包括空白字符都会被当成输入字符。在%c的前面加空格可解决问题
-
字符串型%s
scanf只有在遇到\n,也就是是回车时才结束输入,但是遇到空白字符时就会停止读取。要想将空格也输入进入,我们可以使用gets函数。