getchar()和putchar()

在示例中:
#include <stdio.h>

main()
{
    long nc;

    nc = 0;
    while (getchar() != EOF)
        ++nc;
    printf("%ld\n",nc);
}

我不太明白. putchar()会把角色放出去,但为什么在EOF之后它会把所有的角色都放出来,它在哪里记住所有这些角色?谢谢.

解决方法

它被称为缓冲,它由操作系统完成.通常它会进行行缓冲,它只保存你在内存中放入的每个字符,然后在遇到换行符时将其全部写入文件.这节省了资源,因为文件操作比其他操作花费更多时间.因此,它不是对每个字符进行输出,而是等待一堆字符在缓冲区中收集并一次性写出来.

这只是操作系统所做的一个聪明的操作,你,程序员,你不必担心.只需将角色逐个扔到它上面,然后让操作系统以自己的方式处理其余部分.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...