C语言的一个输入语句问题
如下语句:①scanf("%d%d",&a,&b);scanf("%c%c",&c,&d);②sc...
如下语句:①scanf ("%d %d",&a,&b); scanf ( "%c %c",&c,&d);②scanf ("%d %d",&a,&b); scanf ( " %c %c",&c,&d);两者的唯一不同就是2中的第二个语句“后有个空格。在输入1 2(回车) a b(回车) 后,1中a,b,c,d分别为1,2,(回车的ASCLL码),a 2中a,b,c,d分别为1,2,a,b这都是一个空格引起的。请问:空格在这里可以避免内存接受回车到C变量的机理是什么?
展开
展开全部
解释:
1、在用“%c”格式输入字符时,空格字符和“转义字符”都作为有效字符输入:
scanf("%c%c%c",&c1,&c2,&c3);
如输入 a b c
字符‘a’送给c1,字符‘ ’送给c2,字符‘b’送给c3,因为%c只要求读入一个字符,后面不需要用空格作为两个字符的间隔,因此‘ ’作为下一个字符送给c2。
2、当你的);②scanf ("%d %d",&a,&b); scanf ( " %c %c",&c,&d);第二个语句“后有个空格"时系统默认你输入的两个数据之间存在空格字符或者转义字符。
其实是很简单的一个问题。
1、在用“%c”格式输入字符时,空格字符和“转义字符”都作为有效字符输入:
scanf("%c%c%c",&c1,&c2,&c3);
如输入 a b c
字符‘a’送给c1,字符‘ ’送给c2,字符‘b’送给c3,因为%c只要求读入一个字符,后面不需要用空格作为两个字符的间隔,因此‘ ’作为下一个字符送给c2。
2、当你的);②scanf ("%d %d",&a,&b); scanf ( " %c %c",&c,&d);第二个语句“后有个空格"时系统默认你输入的两个数据之间存在空格字符或者转义字符。
其实是很简单的一个问题。
展开全部
scanf(" %c %c",&a,&b);%c是读取字符的意思。其实就是一个空格的问题。%c前面的空格含义就是跳过所有空白字符(空格键和回车都是空白字符),同理后面的也一样。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
上面说得很清楚了 我就不重复了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询