c语言用getchar保存字母,while( getchar() != ''\n) continue;这个循环读怎么取首字符

本文详细解析了getchar函数在C语言程序中的工作原理及如何处理连续输入的问题。通过一个具体的示例程序,展示了如何使用getchar结合while循环来清除缓冲区中的多余字符,并实现特定的字符输入响应。
摘要由CSDN通过智能技术生成

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

貌似理解了,getchar()只是从键盘缓存里面读取字符,如果没有赋值语句的话,那么读取到的字符也没有存在内存中,那么执行conetinue之后,刚才读取到的字符就被丢弃了,那么也就只读取并且保存了首字符,用while循环就把后面的输入都清除了。

下面是程序:

#include

#include

int main(void)

{

char ch;

printf("Give me a letter of the alphabet,and Will give ");

printf("an animal name\nbeginning with that letter.\n");

printf("Please type in a letter;type # to end my cat.\n");

while ((ch = getchar()) != '#') //只要输入的字符不是#,就执行循环

{

if (ch == '\n') //如果字符是回车,则跳过剩余部分,重新执行循环,重新检查输入的字符

{

continue;

}

if (islower(ch)) //只识别小写字母

{

switch (ch) //switch语句开始

{

case 'a':

printf("argali,a wild sheep of Asia\n");

break;

case 'b':

printf("babirusa,a wild pig of Malay\n");

break;

case 'c':

printf("coati,racoonlike mammal\n");

break;

case 'd':

printf("desman,aquatic,molelike critter\n");

break;

case 'e':

printf("echidna,the spiny anteater\n");

break;

case 'f':

printf("fisher,brownish marten\n");

break;

default:

printf("That's a stumper!\n");

break;

} //switch语句结束

}

else

printf("I recognize only lowercase letters.\n");

while (getchar() != '\n')

{

continue; //跳过输入行的剩余部分

}

printf("please type another letter or a #.\n");

} //while循环结束

printf("Bye!\n");

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值