对于整型 scanf("%4d",&a);1.如果输入以下内容12345678则结果scanf函数只把1234保存到变量a中2.如果输入以下内容123则结果scanf函数会把123原样保存的变量a中可用如下程序进行说明#include <stdio.h>int main(){int a;scanf("%4d",&a);printf("%d",a);}问题:如果对于实型数据,或者字符型数据,又是什么的结果呢?请举例说明。谢谢,刚刚开始学C,呵呵~~多多指教。
2 回答
吃鸡游戏
TA贡献1829条经验 获得超7个赞
这个问题问的好。
你问题的第二种情况是说如果输入多个字符类型数据的情况。
如果是这样,请注意,除非,如果scanf后面的格式是%c的,那么它只能吸收你输入的一个字符,后面的东西全部放在缓存区。也就是说,你再接上一个scanf( "%c", &c),它会继续吸收你前面没有吸收到的字符。
如果下面语句段:
scanf( "%c", ch1 );
scanf( "%c", ch2 );
scanf( "%c", ch3 );
你输入"ab"后按回车。那么,a被ch1吸收,b被ch2吸收,ch3呢?你是不是以为没有东西吸收?其实你输入ab后按了回车,所以回车被ch3吸收了。这点一定要小心。
你的问题第一种情况就明显很多了。
比如你的scanf语句吸收格式字段是%4f,但是你输入了3.1415926那么,它只会吸收3.14,作为浮点类型。后面的15926以整型的方式存在于缓存中。
学C语言一定要不停的去体悟它的输入输出,个人觉得它的重要性仅次于指针。
浮云间
TA贡献1829条经验 获得超4个赞
scanf("%4d",&a);表示若输入小于或等于四位,则原样输出,若输入大于四位,从左到右截取你输入的字符
scanf("%-4d",&a);表示若输入小于或等于四位,则原样输出,若输入大于四位,从右到坐截取你输入的字符
- 2 回答
- 0 关注
- 1037 浏览
添加回答
举报
0/150
提交
取消