字符的读入问题

  当遇到坑题时,读入字符称为了一件难事,看着程序写的有道理,可就是读不进去,读的字符有问题,感觉电脑傻掉了,当进行了无数次的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()读入是多么的精细,这是我们时刻需要注意的问题。

语言c++计算机程序设计爱好者 不定期更新题目题解 望互相分享心得体会 有意留言加q
原文地址:https://www.cnblogs.com/yifeiWa/p/10335542.html