笔记:C 语言的输入残留

C语言在使用scanf()和getchar()读取输入时,可能会留下输入残留,如回车符 。这会导致下一次读取时误读残留字符。解决方法包括手动丢弃多余字符或编写函数clean()来清除输入缓冲区。通过这种方式,可以避免因输入残留导致的错误。
摘要由CSDN通过智能技术生成

众所周知,C语言是一个强大且面向过程的高级语言,而其面向过程也带来了一定的麻烦,包括程序输入的残留。

在scanf()和putchar()读取用户输入时,不会自动抛弃用户多余的输入项,包括回车'\n',其带来的一大麻烦便是在下一次读取时,由于还有一个回车或其他字符没有被读取,C会将其视为输入并直接读取。

//程序实例1
#include<stdio.h>

int main(){
    char ch,ch1;
    
    printf("Enter a char:");
    ch=getchar();
    printf("Enter a char again:");
    ch1=getchar();

    printf("The ch=%c and the ch1=%c",ch,ch1);
    
    return 0;
}

程序的运行示例如下:

 可见在程序中输入'a'键并回车,两个getchar()分别读取了'a'和不可见的回车字符并赋值给了ch和ch1。

执行scanf()和getchar()时,会先寻找用户输入,如果在当行没有发现任何输入内容,才会询问用户。在程序实例1中我们不仅输入了'a',还输入了回车'\n‘字符,第一个getchar()发现了第一个'a'字符后,第二个getchar()会再次搜寻用户的输入内容,并发现了'\n'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值