getchar与putchar?

到百度贴吧首页
新闻   网页   贴吧   知道   MP3   图片   视频   百科
    吧内搜索 | 帮助

getchar与putchar?

219.156.36.*

1楼

我记得getchart和putchar只是针对字符,可是我在练习时它们接受我所输入的所有字符,这是为什么?
#include  "stdio.h"
main()
{
  char ch;
  ch=getchar();
  putchar(ch);
}
而且putchar(ch)这条语句有与没有,与输入结果一点影响都没有,为什么?
我知道这个很简单,但是这细节我很想明白是何原因。

2楼

I don't know what's your problem,
please show me details.

219.156.36.*

3楼

执行ch=getchar();后,需要我从键盘输入字符skdjfdg dk 
结果在屏幕上把我刚才输入的全都显示出来了
我以为只接受第一个字符s,而其它全都舍弃,是吗?

4楼

#include <stdio.h>

int main()
{
 int c;
 c=getchar();
 putchar©;
 return 0;
}

what's your compiler?system?
I have the program work very well in gcc3.4.2+FreeBSD5.3R.
That is to say, when I typed abcdef, the program only printed a.

5楼

#include <stdio.h>

int main()
{
 int c;
 c=getchar();
 putchar( c );
 return 0;
}

6楼

我这儿只输出S,你那机器是否有问题?????
219.156.36.*

7楼

应该定义char c吧,为什么定义int?
我用的是VC编译器

219.156.36.*

8楼

我知道了,我当时没有用回车符,所以第一行显示的adklfasdj是我输入的
屏幕显示的a在第二行,和Press any key to continue相连,我没有注意到。

9楼

use int to avoid some problems.
in gcc , putchar() returns a int value.

219.156.36.*

10楼

assiss你英语也很不错吧,希望以后在你的带动下这个C论谈变成c和english相结合的论谈就更好了。

11楼

不是啊。刚才因为没装输入法,呵呵。不然我才懒得讲鸟语呢。

12楼

没有理由的说鸟语,我坚决反对,鸟语只是工具,不要学那些白皮萝卜,TMD都是华人又在中国开个会还不许说中文...什么东西!
顶丁肇中

220.175.12.*

13楼

getchar 和 putchar 
这两个函数只接收一个字符呀!!!
而不是全部的字符呀!!!
我晕了!!!
你们还是高手呀!!

14楼

英语不错呀!!

15楼

13:
没看懂呢,就不要瞎咋呼。

218.10.187.*

16楼

putchar()函数的作用不是向终端输出一个字符吗?而参数ch可以是一个字符或字符型变量,整型变量表达式都可以,我想说的是putchar输出时是一个字符而参数ch函数定义时却可以是整形变量,有点不懂啊,可否解释一下?by the way!这里的吧主是不是东北人?
221.216.92.*

17楼

8 回复:getchar与putchar? 
 我知道了,我当时没有用回车符,所以第一行显示的adklfasdj是我输入的
屏幕显示的a在第二行,和Press any key to continue相连,我没有注意到。 
 ----------------------------------------------------------------------
完全晕倒~~~~~

18楼

楼上这位是什麽意思?
220.161.200.*

19楼

哈哈
221.200.212.*

20楼

是不是东北人有什么关系?知识无界!
221.200.212.*

21楼

我倒是想知道谁有2005年4月2日的c二级考试题。
二级难不?



 呢称:子前

22楼

getchar()这个函数再接收字符时是一个一个接收,for example: 输入:asdf时第一次接收“a”
59.64.210.*

23楼

呵呵,晕倒
218.74.39.*

24楼

sb
210.21.234.*

25楼

有这会事
202.113.25.*

26楼

晕晕晕!!

27楼

ANSI C 采用的缓冲文件系统,键盘输入时,有个缓冲区。
218.58.249.*

28楼

这一点我以前研究了很久,虽然getchar()只是接受了一个字符,但是你输入的那个字符串还是被存入缓冲区,也就是说当你输入c=getchar();而你输入了asdsfaf#后面一条判断语句while(c!=“#")电脑还是判断你输入了'#"这个字符,而不是仅仅输入了‘a’而继续满足以上循环条件。。这一电比较难理解。。呵呵~
222.64.88.*

29楼

他的这个命令本意是输出一个字符,而不是字符串,但是因为有个缓冲区,所以会有类似字符串的输出形式,所以最好是每次都清空一下缓冲区,那个命令忘记了,好象是fflsh(stdin),这样就没问题了,按个输入
218.92.197.*

30楼

main()
{char c;
 int n=0;
 c=getchar ();
 while(c!='\n')
 {if (c>=48&&c<=57) n++;
 c=getchar ();}
 printf("%d\n",n);}为什么结果会是ERROR我c成学得不好阿,帮我啊!

发表回复

内 容:
用户名:
  
©2010 Baidu 贴吧协议  意见反馈