7.3.6用scanf和printf读/写字符

 scanf(" %c", &ch);

转换说明%c允许scanf函数和printf函数对单个字符进行读/写操作:

char ch;

scanf("%c", &ch);

printf("%c", ch);

在读入字符前,scanf函数不会跳过空白字符。如果下一个未读字符时空格,那么在前面的例子中,scanf函数返回后变量ch将包含一个空格。为了强制scanf函数在读入字符前跳过空白字符,需要再格式串中的转换说明%c前面加上一个空格:

scanf(" %c", &ch); /*skips white space, then reads ch跳过空白,然后读取ch*/

回顾3.2的内容,scanf格式串中的空白意味着“跳过零个或多个空白字符”。

因为通常情况下scanf函数不会跳过空白,所以它很容易检查到输入行的结尾:检查刚读入的字符是否为换行符。例如,下面的循环将读入并且忽略掉当前输入行中剩下的所有字符:

do{

scanf(“%c”, &ch);

}while (ch != '\n');

下次调用scanf函数时,将读入下一输入行中的第一个字符。

 

''

posted @ 2021-04-12 22:01  Sai佐为  阅读(270)  评论(0)    收藏  举报