一个学c语言中的小疑问……

[复制链接]
查看11 | 回复5 | 2012-10-30 08:03:32 | 显示全部楼层 |阅读模式
"%d%d"这是格式化字符串,对用户输入做了格式要求,如果格式化字符串中两个数据%d之间有明确的分隔符“ ”或","那么用户就得按照要求在输入时用指定的分隔符隔开两个数,如果如本例所示没有明确分隔符,C标准默认以空格、回车或制表符为分隔符,如果希望以","做分隔符,写入格式化字符串中即可:scanf("%d,%d",&a,&b); 这时如果输入以空格或回车分隔就不可以了。...
回复

使用道具 举报

千问 | 2012-10-30 08:03:32 | 显示全部楼层
这个问题就是一个问题,scanf函数。这个函数双引号中的东西,除了控制符(带百分号的)东西,其他东西最好别乱添加东西。如:scanf("%d%d",&a,&b);这种方式,就只有控制符,这种情况下,默认的分割符是空格和回车。第一:因为默认分隔符是空格所以可以输入:1空格2回车。你输入的内容实在缓冲区,回车之后开始正式的读入内存(刷新内存)。第二:...
回复

使用道具 举报

千问 | 2012-10-30 08:03:32 | 显示全部楼层
原因是你的输出和scanf里的要求输出不符啊!你要是按空格键输出写成sacnf("%d %d",&a,&b);输入“8 6”再看看输出你要是按逗号输出一个写成scanf("%d,%d",&a,&b);输入“8,6"在看看输出...
回复

使用道具 举报

千问 | 2012-10-30 08:03:32 | 显示全部楼层
建议你看看 c primer plus 里面很多初学者的问题,他会详细回答你的问题...
回复

使用道具 举报

千问 | 2012-10-30 08:03:32 | 显示全部楼层
scanf("%d%d",&a,&b);这条语句指定了两个输入整数之间是没有分隔符“,”的,所以只有第一个数据读入正确。...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行