scanf用%c的时候可以识别空格吗?

#include<stdio.h>
void main()
{
char a;
scanf("%c",&a);
printf(" %d",a);

}
输入的时候按空格键输出为32.说明把空格赋给了变量a。
这是为什么啊!,为什么下面的代码段中scanf又不能识别空格?
#include<stdio.h>
void main()
{
int b;
scanf("%d",&b);
printf("%d",b);
}
我记得学C语言的时候是说scanf不接受空格都嘛!越来越奇怪了啊

%c前面的空格就是用来屏蔽空白符的。

(scanf()读入字符串中的空格) 

#include<stdio.h>

int main()

{

char a[777];

scanf("%[^/n]",&a);

printf("%s",a);

return 0;

}

扩展资料:

使用scanf注意事项

1、参数的个数一定要对应

2、输入的数据类型一定要和所需要的数据类型一致

3、每次调用完scanf后,记得调用一个getchar()函数

函数 scanf() 是从标准输入流stdio (标准输入设备,一般指向键盘)中读内容的通用子程序,就是从标准输入流中或许数据,上面第一个scanf()要读入一个整数,它从标准输入流中查找,跳过空白符(空格、换行符、制表符)。

参考资料来源:百度百科-scanf (计算机语言函数)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-09-08
题描述一:(scanf()读入字符串中的空格) 。
#include<stdio.h>
int main()
{
char a[777];
scanf("%[^/n]",&a);
printf("%s",a);
return 0;
}
说明:
在scanf函数中,可以使用 %c来读取一个字符,使用 %s 读取一个字符串,但
是读取字符串时不忽略空格,读字符串时忽略开始的空格,并且读到空格为止,因此只能读取一个单词,而不是整行字符串,因此一般使用fgets来读取一个字符串。其实scanf函数也可完成这样的功能,而且还更强大。这里主要介绍一个参数,%[ ],这个参数的意义是读入一个字符集合。[ ]是个集合的标志,因此%[ ]特指读入此集合所限定的那些字符, 比如 %[A-Z] 是输入大写字母,一旦遇到不在此集合的字符便停止。如果集合的第一个字符是" ^ ", 这说明读取不在" ^ " 后面集合的字符,既遇到" ^ " 后面集合的字符便停止.注意此时读入的字符串是可以含有空格的。

通俗易懂叫高质量?程序题要简单明了?
第2个回答  推荐于2017-11-22
控制符不同 你用%c说明是输入一个字符 此时可以scanf可以接受空格 但其他控制符都以空格为结束标志 如%d %s都是以空格为结束 所以你的二个不接受空格本回答被提问者采纳
第3个回答  2015-08-12
控制符不同 你用%c说明是输入一个字符 此时可以scanf可以接受空格 但其他控制符都以空格为结束标志 如%d %s都是以空格为结束 就不会识别
第4个回答  2009-12-07
%c接受空格的,其他的包括%s都是以空格作为分割符