C Primer Plus(5版)第8章习题讲解(一)

C Primer Plus 第五版的第8章的习题3是我觉得是一个很不错的练手习题,考察输入函数、重定向等多种技术,做完这道题,可以对C语言的标准I/O有更深的认识。

题目是这样的:假设您有一个程序count,该程序对输入的字符数进行计数。用count程序设计一个命令行命令,对文件essay中的字符进行计数并将结果保存在名为essayct的文件中。

这道题的要求,我汇总并分析如下:

  1. 题中要求对输入的字符数进行计数

分析:这个要求设计到以下几点:

  1. 需要一个能够接收输入的函数。我想可以用getchar函数试试;

  2. 如何告诉这个输入函数,输入已经结束。标志输入结束可不是什么回车键,而是一种特有的结束标志:EOF。

  3. 一个专门用于计数的计数器。这个可以使用一个变量即可。

2.用count程序设计一个命令行命令

分析:题目要求count程序是一个命令,需要在cmd窗口或者shell中运行。这个不难,只要count程序编译成功,生成可执行程序即可。

3.对文件essay中的字符进行计数

分析:原来,count程序的输入不是来自于一般的键盘输入,而是来自于一个已经存在的文件。那么需要一种技术,让count程序从文件essay中读入字符,而且还能判断出文件是不是已经到达末尾。这个技术我想就是重定向技术了,而且标志文件末尾的标志是EOF。

4.将计数结果保存在名为essayct文件中

分析:count程序将计数的结果要输出到一个文件中,而不是简单的输出大片显示器上。因此,需要一种技术,让count程序将结果导入到一个文件中。这种技术也是重定向技术。

有了上面的初步分析,我们可以写出一个初步的代码来实现这个题目的要求。C语言代码如下:

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    int counter = 0; //计数器
    int ch; //存储从文件中读入的字符
    while( EOF != (ch = getchar()) ) //使用getchar函数从标准输入中读取字符,当读取到末尾时停止循环 
    {
        counter++; //计数器自增 
    } 
    printf("%d", counter);
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C语言答疑课堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值