| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 617 人关注过本帖
标题:printf与getchar混用的问题
只看楼主 加入收藏
fujianzhui
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-4-10
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:8 
printf与getchar混用的问题
程序代码:
int main()
{    
    printf("%c%c%c\n",getchar(),getchar(),getchar());
    return 0;
}

 
我输入abc,运行结果是cba   请问这是为啥?
搜索更多相关主题的帖子: abc 
2013-04-10 11:37
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:1 
原因很简单...   输入时是从最后面的getchar()开始的

三十年河东,三十年河西,莫欺少年穷!
2013-04-10 12:36
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:2 
C/C++ 没有规定参数的入栈顺序,不过一般都是从右到左
2013-04-10 12:37
pengyancai
Rank: 2
等 级:论坛游民
帖 子:57
专家分:46
注 册:2013-3-4
收藏
得分:0 
是因为printf()函数的原因,因为如果参数列表包括多个实参,那么对实参的求值的顺序并不确定的,有的系统按自左至右顺序求实参的值,有的自右至左。
所以建议楼主可以定义三个变量输出。
# include <stdio.h>
int main()
{
  char a,b,c;   
  a=getchar();
  b=getchar();
  c=getchar();   
  printf("%c%c%c\n",a,b,c);
  return 0;
}
2013-04-10 12:47
party620
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:18
帖 子:696
专家分:2521
注 册:2013-1-31
收藏
得分:1 
学习啦
2013-04-10 14:06
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
写出这样的代码必定又是中国教育界的杰作。

授人以渔,不授人以鱼。
2013-04-10 21:55
fujianzhui
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-4-10
收藏
得分:0 
回复 6楼 TonyDeng
我是新手 最近在自学谭浩强的书 前辈有什么推荐的书籍或建议么
2013-04-11 19:42
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:1 
楼主仔细看看3楼的回复。1楼这种代码,就是依赖上古时代知识体系写出来的,除了在中国大陆教育界有人教和考这种代码之外,现实中没有任何人会这样写,出来工作被人发现你写这种代码,不炒你自己都不好意思继续呆下去啦。我不知道谭浩强的书上是不是总有很多这种代码,如果是,这书就的确有很大的问题了,但我看到很多人发的考试题,却确实经常有这类狗血代码,还要有标准答案误人子弟的。

[ 本帖最后由 TonyDeng 于 2013-4-11 21:55 编辑 ]

授人以渔,不授人以鱼。
2013-04-11 21:53
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:0 
同意楼上,严重黑谭浩强的书!

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-04-12 08:32
快速回复:printf与getchar混用的问题
数据加载中...
 
   



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

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