鱼C论坛

 找回密码
 立即注册
查看: 3367|回复: 4

关于getchar( )和putcha( )的疑问?

[复制链接]
发表于 2013-10-6 20:12:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
各位大大:
        晚上好!
        我是新手,刚开始学习C,刚学到getchar( )putcha( )用法这就卡住了。
        getchar( ):一次写入一个字符;
        putchar( ):一次读出一个字符。
我现在只能理解程序1
  1. # include<stdio.h>
  2. int main(void)
  3. {
  4.             char c;
  5.                c = getchar();

  6.             putchar(c);
  7.     putchar('\n');

  8.             return 0;
  9. }
复制代码
输入:t,运行结果如下:

  1. t
  2. t
  3. Press any key to continue
复制代码
即使输入多个t,也只输出一个t,运行结果如下:
  1. ttttttttttttttttttttt
  2. t
  3. Press any key to continue
复制代码
程序2
  1. # include<stdio.h>
  2. int main(void)
  3. {
  4.             int c;
  5.     c = getchar();

  6.             while(c != EOF)
  7.             {
  8.                        putchar(c);
  9.                        c = getchar();
  10.            }
  11.            return 0;
  12. }
复制代码
运行结果:
  1. t
  2. t
  3. tttttttttttttttt
  4. tttttttttttttttt
复制代码
程序2有两点不明白:
1.输入多个t,竟然也能输出多个t,(我觉得应该只输出一个t )
2.没有换行符“\n”,竟然自动换行了。
程序3
  1. # include<stdio.h>
  2. int main(void)
  3. {
  4.             int c;

  5.             while((c = getchar()) != EOF)
  6.            {
  7.                          putchar(c);
  8.                          c = getchar();
  9.             }
  10.             return 0;
  11. }
复制代码
运行结果:

  1. t
  2. t
  3. tttt
  4. tt

  5. ttttttttttttttttttttttttttttttttttttttttttttttttt
  6. tttttttttttttttttttttttt
复制代码
程序3不明白的地方:
1.当输入多个字符时,只能输出一半字符;
2.与程序2相比较,程序3没有换行符,输出结果却没有换行。


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-10-6 20:15:45 | 显示全部楼层
发个帖子真费劲,反反复复编辑了五六次,终于发能发出来了。看来得多练练才行,自己先顶一下吧。:lol:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-10-6 21:24:33 | 显示全部楼层
程序1 与 程序2 可以一起回答:
因为 getchar( )  一次接收一个字符,而你输入的是多个字符,实际上它也接收了那么多个,敲一个键就接收一个;第一个程序输出一个是因为putchar( ):一次读出一个字符 , ”putchar( )“只执行了一次,所以只输出第一个字符;
程序2 有循环,所以能输出多个;  并且回车也是一个字符;

程序3  :
只要把  while 循环里面那句   ”c = getchar();“  删掉就行了。
因为”while“ 判断里执行一次,循环里执行一次相当于两个字符。(这句是我理解的,可能有更好的解释)

希望对你有帮助
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-10-6 22:45:05 | 显示全部楼层
顶楼上,正解
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-10-18 23:28:48 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-11 04:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表