字符的读入问题

  当遇到坑题时,读入字符称为了一件难事,看着程序写的有道理,可就是读不进去,读的字符有问题,感觉电脑傻掉了,当进行了无数次的debug之后,终于解决了答案,

面对这样的窘境,不如我们谈一谈读入字符的方法与经验吧!

对于读入字符,我们用getchar()或者scanf("%c", &a),当对于字符串,我们用scanf("%s", s),其中s是字符串,注意当读入单个字符时,&必须要加上,但是读入字符串时,&不

要加,所以写代码时候要注意这一点,如果读取的内容比较麻烦,例如“dafasdf dfasfewurpoiu ffe”这种带有空格或者换行的东西时,我们可以用getchar()与scanf("%c", &a)

解决,所以getchar()与scanf()读入单个字符时一定要注意空格,换行等东西,scanf("%s", s)读入时,遇到空格、Tab、换行时候停止。

给大家举一个坑人的例子吧!

#include <stdio.h> 

int main() 
{
    int a, b, c;
    char d; 
    scanf("%d%d%d", &a, &b, &c); 
    scanf("%c", &d); 
    printf("%c", d); 
    return 0;    
}

样例输入:

1 2 3 4 5

样例输出是什么呢?

是不是 5 呢 ?

那你就错了,我往往会犯这样的问题,对字符的读入不加以精确的思考,然后盲目调试了半天,无果。。。

#include <stdio.h> 

int main() 
{
    int a, b, c;
    char d; 
    scanf("%d%d%d", &a, &b, &c); 
    scanf("%c", &d); 
    printf("%c", d); 
    if(d == ' ') printf("...");
    return 0;    
}

所以我们需要时刻记住printf与getchar()读入是多么的精细,这是我们时刻需要注意的问题。

 

转载于:https://www.cnblogs.com/yifeiWa/p/10335542.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值