首页 > 代码库 > scanf、gets、getchar

scanf、gets、getchar

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()同