标题:简单程序+神秘的自动换行+不明字符突现
只看楼主
gyx8899
Rank: 2
等 级:论坛游民
帖 子:56
专家分:91
注 册:2010-2-2
结帖率:100%
已结贴  问题点数:50 回复次数:4 
简单程序+神秘的自动换行+不明字符突现
简单程序+神秘的自动换行+不明字符突现  ???why!
#include<stdio.h>
void main()
{
    float k,m;
    char c1,c2;
    scanf("%f##%f",&k,&m);
    scanf("%c,%c",&c1,&c2);
    printf("%f,%f\n",k,m);//出现问题处。
    printf("%c,%c\n",c1,c2);
}
例子:
32.4##3.445
R,T
32.400002,3.445000

,?
Press any key to continue
请问这是为什么。Thank you!
搜索更多相关主题的帖子: continue Thank 
2011-02-18 22:52
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
得分:20 
#include<stdio.h>
void main()
{
    float k,m;
    char c1,c2;
    scanf("%f##%f",&k,&m);
    getchar();
    scanf("%c,%c",&c1,&c2);
    printf("%f,%f\n",k,m);//出现问题处。浮点问题属于硬伤
    printf("%c,%c\n",c1,c2);
}


[ 本帖最后由 点线面 于 2011-2-18 22:59 编辑 ]

小代码,大智慧
2011-02-18 22:58
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
得分:10 
回复 楼主 gyx8899
归结原因就是,缓冲区

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-02-18 23:26
huangapple
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:545
专家分:1790
注 册:2010-12-30
得分:20 
#include<stdio.h>
void main()
{
    float k,m;
    char c1,c2;
    scanf("%f##%f",&k,&m);
    getchar();//这个是用来接收回车键的,比如scanf("%c%c", &c1, &c2);你必须一下子输入两个字符,不能有空格,如果你输入a,然后回车,那么c1接回到的是a,c2接收到的一个回车换行符了,如果你是输入a然后一个空格,然后c1接回到a,c2接收到一个空格,所以%c是可以接收很多东西的,楼主可以试试,也许你说的那个奇怪的换行就是因为这个吧
    scanf("%c,%c",&c1,&c2);
    printf("%f,%f\n",k,m);//出现问题处。//这个是因为数据在电脑里存储都是以二进制的,有些小数10进制的转成2进制的就有可能会出现无限循环那种,电脑只能截取前面的那部分了,再转成10进制时就会出现一些误差,所以这是硬伤
    printf("%c,%c\n",c1,c2);
}

勤能补拙,熟能生巧!
2011-02-18 23:31
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
得分:0 
学习~~~

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-02-18 23:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-332410-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049391 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved