缓冲区

getchar()和putchar()问题
#include "stdio.h"
#include "stdlib.h"

main()
{
    char c;

    c = getchar();

    while (c != EOF){
        putchar(c);
        c = getchar();
    }
    system ("pause");
}
运行后的结果是:
输入:hello
显示:hello。
但是getchar()这个函数,不是说读入一个字符吗?
比如我上面输入的是hello的话,我觉得正常来说输出应该是hheelllloo,这样显示出来的啊?

哪位帮忙解释下,我这样理解的错误吗?



在这里有点需要说明:当我们从键盘输入字符串的时候需要敲一下回车键才能够将这个字符串送入到缓冲区中,那么敲入的这个回车键(\r)会被转换为一个换行符\n,这个换行符\n也会被存储在缓冲区中并且被当成一个字符来计算!比如我们在键盘上敲下了123456这个字符串,然后敲一下回车键(\r)将这个字符串送入了缓冲区中,那么此时缓冲区中的字节个数是7 ,而不是6。
缓冲区的刷新就是将指针_ptr变为缓冲区的基地址 ,同时_cnt的值变为0 ,因为缓冲区刷新后里面是没有数据的!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值