scanf:
scanf("%c",..):可以读取空格、换行符、制表符等
scanf("%d",...):开始忽略空格、换行符、制表符,直到读取到一个字符
scanf("%s",...):开始读取时忽略空格、换行符、制表符,直到开始读取字符串,最后以空格、换行符、制表符结束,不丢弃任何字符
gets:直接读取字符串,最后以换行符结束,并且丢掉缓存中的换行符。
getchar:读取一个字符。
scanf("%d", &a);
scanf("%d", &b);
输入: 空格空格6换行符8
结果a = 6,b=8,说明开始忽略了开始忽略空格、换行符、制表符,直到读取到一个字符
gets(str1);
c= getchar()
gets(str2);
输入:
abcderg
fgtht
结果:
str1 :abcd erg
c: f
str2:gtht
说明:直接读取字符串,最后以换行符结束,并且丢掉缓存中的换行符
scanf("%s", str1);
c= getchar()
scanf("%s", str1);
同样输入
结果:
str1 :abcderg
c: 换行符
str2:fgtht
说明scanf("%s")没有丢弃换行符,换行符还在缓存中
gets可以读取空格,测试略
输入:空格空格换行符abcd
scanf("%s", str);
结果:str:abcd
gets(str);
结果str:空格空格
scanf(“%c”)和getchar()同
scanf、gets、getchar,布布扣,bubuko.com
原文:http://www.cnblogs.com/jsy306/p/3719526.html