ch=getchar(); putchar(ch);和putchar(getchar())的区别。

#include <stdio.h>
main()
{
char ch;
printf("Input Two character:");
ch=getchar();
putchar(ch);
putchar('\n');
putchar(getchar());
putchar('\n');
}
我输入ab 输出是
a
b
我把putchar(getchar())改成ch=getchar()输出就是
a
a
我如果在原程序后面再加个putchar(getchar()) 输入abc
输出是
a
b
c
第二个函数具体是什么意思?
还有想问下printf()
()里面不是包括“格式控制字符串”,输出列表么
为什么可以用printf("input two character")
input two character是不是非格式字符串? 输出列表可以省?

ch=getchar(); putchar(ch);和putchar(getchar())实现的功能是一样的,只不过多了一个中间变量。
1.putchar函数的作用:向终端输出一个字符。
(1)putchar函数只能用于单个字符的输出,且一次只能输出一个字符。
(2)在程序中使用putchar函数,务必牢记:在程序(或文件)的开头加上编译预处理命令(也称包含命令),即:#include "stdio.h"。
getchar函数(单个字符的输入函数)
2.getchar函数的作用:从系统隐含的输入设备(如键盘)输入一个字符。
getchar函数只能用于单个字符的输入,一次输入一个字符。程序的功能是输入一个字符,显示一个字符,回车换行,再输入并显示一个字符。而运行时字符是连续输入的,运行结果却是正确的,这是因为输入字符后,它们暂存于键盘的缓冲区中,然后由getchar函数从键盘缓冲区中一个一个的取出来。使用getchar函数时,在程序(或文件)的开头也必须加上编译预处理命
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-06
getchar(); 函数读取键盘缓冲区的字符,也就是说:你输入的字符存在键盘缓冲区内,getchar()每次取一个字符,所以当你输入两个字符的时候,第二次调用getchar()时获取的是字符b,如果你在调用getchar()函数,取的就是回车符。故此,可得到你上述的结果。
第2个回答  2011-12-06
不懂,你说的什么意思
putchar(getchar());
就相当于
ch=getchar();
putchar(ch);
这两句,就缺少一个中间变量ch而已,但实际操作中是一摸一样的。追问

那为什么我吧ch=getchar();putchar(ch);换成putchar(getchar())后输出结果不一样呢

追答

#include
main()
{
char ch;
printf("Input Two character:");
putchar(getchar());
putchar('\n');
putchar(getchar());
putchar('\n');
}
结果还是一样的!!!

追问

搞错 我是想问我把putchar(getchar())改成putchar(ch)输出结果是
a
a
putchar(ch)有什么不同么? 为什么是a

追答

你没有用ch = getchar获得第二次输入的,ch的值没有改变。当然还是a了。
putchar(getchar());
等价于
ch=getchar();
putchar(ch);
而不是
等价于
putchar(ch);

本回答被提问者采纳
第3个回答  2011-12-06
你说的“第二个函数”到底是哪个函数?putchar()吗?
建议你在百度中搜索:getchar
学习语言的正确方法是:遇到问题时,首先要自己动脑想,动手调试,然后查阅资料,最后才是提问。
另外:getchar()的返回值是int型,putchar(int i)参数也是int型哦
第4个回答  2011-12-06
“我把putchar(getchar())改成ch=getchar()输出就是
a
a"
你 改完了之后有没有输出(putchar(ch);)追问

上面打错了 是把putchar(getchar())改成putchar(ch)输出结果就是
a
a 为什么还是取的第一个字符啊