和scanf 有关的一些。。。

# include<stdio.h>
int main()
{
	int a1,a2;
	char c1,c2;
	scanf("%d%c%d%c",&a1,&c1,&a2,&c2);
	printf("a1=%d\nc1=%c\na2=%d\nc2=%c\n",a1,c1,a2,c2);
	return 0;


}
//正确的数据输入方式是  10A空格20B

对此我表示很疑惑


<span style="font-size:14px;"># include<stdio.h>
int main()
{
	int x,y,z;
	scanf("%d%d%d",&x,&y,&z);
	printf("x+y+z=%d\n",x+y+z);
	return 0;

}
//当输入数据的形式是 25,13,10《回车》时,输出结果是一个不确定的数
//当输入数据的形式是 25 13 10《回车》时,输出结果是x+y+z=48</span>
如果在“格式控制字符串”中除了格式声明以外,还有其他字符,则在输入数据时在对应位置上应输入与这些字符相同的字符



# include<stdio.h>
int main()
{
	char c1,c2,c3;
	scanf("%c%c%c",&c1,&c2,&c3);
	printf("%c%c%c",c1,c2,c3);
	//printf("哈哈哈哈哈%c",c1);
	//printf("啦啦啦啦啦%c",c2);
	//printf("去去去去去%c",c3); //注释部分输出结果为:哈哈哈哈哈A啦啦啦啦啦 去去去去去B
	return 0;
}



当输入A B C<回车>时,输出的结果是A B

经过自己的多次试验发现c2的是空,输出的c1为A,c3为B 

当输入ABC<回车>时,输出的结果是ABC   这是为什么啊??????

在用“%c”格式声明输入字符时,空格字符和“转义字符”中的字符都作为有效字符输入

当输入A B C<回车>时,第一个字符‘A’送给了c1,第二个字符‘ ’送给了c2,第三个字符‘B’送给了c3



#include<stdio.h>
int main()
{
	char c1,c2,c3,c4,c5,c6;
	scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
	c5=getchar();
	c6=getchar();
	putchar(c1);
	putchar(c2);
	printf("%c%c\n",c5,c6);
	//printf("hahhhhhh%c\n",c3);//c5=getchar();c6=getchar();以及printf("%c%c\n",c5,c6);画上斜线后,
        //printf("哈哈哈哈%c\n",c4);//输入abc<回车>注释部分运行结果为abhahhhhhhc (下一行)哈哈哈哈                 
        return 0;
}



若运行时从键盘输入数据:
abc<回车>
defg<回车>

则输出的结果是abde     ???????

由于输入abc以后输入了回车,则表示scanf输入函数输入完毕,然后开始进行getchar函数输入,又因为getchar函数只能输入一个字符,putchar函数只能输出一个字符,从而使得输出结果为abde


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值