关于%c的用法,c Primer Plus 第80页里这样解释:
如果使用%c说明符,那么所有的输入字符都是平等的。如果下一个输入字符是一个空格或者换行符,将会把这个空格或换行赋给指定的变量;不会跳过空白字符。
所以在使用%c时,最好前面使用 getchar()来规避掉不必要的空格、换行符、制表符。
实际的应用:
#include <stdio.h>
#include <string.h>
void main()
{
char ch = 'y';
do
{
printf(" Press \"y\" ,continue. Or Press \"n\" , break :\n" );
getchar();
scanf("%c",&ch);
}while( ch == 'y' )
}
在这个例子中如果不使用getchar(),这个循环将难以持续下去。因为scanf("%c",&ch); 语句会读到空白符或换行符。