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 ,因为缓冲区刷新后里面是没有数据的!