为什么char类型输入遇空格会结束,int类型必须要空格才能输出

时间:2021-10-24 18:51:44

char类型与int类型输入时的区别:

在C语言的规则中,规定了scanf函数在接收字符串时——遇到空格或回车就认为前面的输入已经完成且有效!

而对于int类型:表示整数,输入时需要用空格隔开,以确认第一个数输入结束,接着输入第二个数!

验证:有以下程序:

为什么char类型输入遇空格会结束,int类型必须要空格才能输出

若要求a1,a2,c1,c2的值分别为100、20、A、B,正确输入的数据输入是【】

(A).100A 20B

(B).100A20 B

(C).100 A20B

(D).100 A 20 B

在C语言作业中经常遇到这种数据类型混合输入输出的题目。这次就来调试以下,弄给清楚:

1、只有char类型的时候:

为什么char类型输入遇空格会结束,int类型必须要空格才能输出

为什么char类型输入遇空格会结束,int类型必须要空格才能输出

为什么char类型输入遇空格会结束,int类型必须要空格才能输出

可以发现:字符类型char,在输入时遇到空格就会结束输入。而且输入的空格就会把B的位置占掉。因此将输入的位数增加到3个,为此验证空格是否代表一个有效输入:

为什么char类型输入遇空格会结束,int类型必须要空格才能输出

为什么char类型输入遇空格会结束,int类型必须要空格才能输出

为什么char类型输入遇空格会结束,int类型必须要空格才能输出

得到结论:字符类型char,在输入的时候不能加空格隔开(回车的情况也是一样的)。

2、只有int类型的时候:

为什么char类型输入遇空格会结束,int类型必须要空格才能输出

为什么char类型输入遇空格会结束,int类型必须要空格才能输出

为什么char类型输入遇空格会结束,int类型必须要空格才能输出

得出结论:整型在输入的时候,必须要输入空格或者回车间隔开,才能保证第一个数输入有效。

为什么char类型输入遇空格会结束,int类型必须要空格才能输出

为什么char类型输入遇空格会结束,int类型必须要空格才能输出

因此得到上面的结果:输入第一个整型,用字符A进行间隔,以保证整型输入有效,由于第三个输入的还是整型,因此可以有空格也可以没有空格,第四个:可以理解成:整型与字符型之间不能有空格。