下载后可任意编辑C 语言 scanf 函数应用问题 c 语言的输入是由系统提供的库函数完成的
scanf 函数是 c 语言中最常用且功能最强的输入函数,但该函数如使用不慎,就会出现错误或得不到预想的结果
以下结果都是基于 Vc++6
0 运行环境
一、格式说明符和输入项的三对应(类型、个数、顺序)scanf 函数格式中的格式说明(“%格式字符”)应与输入项数据类型一致,个数相等、顺序对应 ( 除 格 式 说 明 中 出 现 “ *” 附 加 格 式 说 明 字 符 外 )
示 例 一 :inta,b;scanf("%d%d%d",&a,&b);printf("%d,%d",a,b);输入“345”时,输出“3,4”,没有错误提示信息,但是第三个数没有接收的变量,也就没有输出
再如 inta,b;scanf("%d",&a,&b);printf("%d,%d",a,b);输入“34”时,输出“3,-xxxx”,a 得到 3,但 b 是一个随机数,都是因为格式说明(“%格式字符”)与输入项个数不一致造成的
再如structst{intnum;charname[10];intage;floatscore;}student;scanf("%d,%s,%d,%f",&student);输入“10001,"zhang",23,68”,运行程序时,无出错信息,但 student 不能正确接收输入数据
应该写成:scanf("%d,%s,%d,%f",&student
num,student
name,&student
age,&stu-dent
score);保证格式说明与输入项个数相等、一一对应,才能使 student 正确接收输入数据
示例二:chara,b;scanf("%d%d",&a,&b);printf("%d,%d",a,b);输入“34”时,输出“3,4”,输入整