C语言 格式输入问题

[复制链接]
查看11 | 回复3 | 2011-2-22 23:33:50 | 显示全部楼层 |阅读模式
scanf :当遇到回车,空格和tab键会自动在字符串后面添加'\0',但是回车键仍会留在输入的缓冲区中。gets:可接受回车键之前输入的所有字符,并用'\n'替代 '\0'.回车键不会留在输入缓冲区中你的题目分析如下:aa后面是空格,所以a1的储存结束,a1=aa然后bb你按了回车,a2的储存结束,a2=bb由于你bb完,按了回车,回车留在缓冲区中,然后执行gets(a3),a3遇到缓冲区的回车,a3结束。然后你按了cc dd
执行gets(a4),a4储存cc dd,由于你回车,a4结束。然后打印puts会自动换行,一个puts换一行~...
回复

使用道具 举报

千问 | 2011-2-22 23:33:50 | 显示全部楼层
scanf语句是可以以空格为作为结束符的,所以aa和bb之间的空格符起了作用,所以a1为aaa2为bb下面是MSDN上队char *gets( char *buffer );函数的一个注意事项的描述The gets function reads a line from the standard input stream stdin and sto...
回复

使用道具 举报

千问 | 2011-2-22 23:33:50 | 显示全部楼层
uble型的能用%f输入,编译器会自动提高精度。float型的也能用%lf输入,但是会有一半的精度丢失。double型的准确有效数字是小数点后16位,float型是7位。如果你输入一个数字,比如1.234567890123,用double型的话会全部输入,但用float型的话从9开始以后的数字就全丢弃了,你再把它打印出来的话你就会发现从第8位以后的都能不...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行