如何让这个C项目从文件中打印行数开始?[已关闭]

问题描述 投票:0回答:1

根据下面的问题,我需要在Ubuntu中编写一个程序。

用C语言写一个程序(不使用任何标准工具或库函数)来打印给定文件集的前N行或后N行。将每个FILE的前最后N行打印到标准输出。如果有多个FILE,在每个FILE的前面加上一个头,给出文件名。 程序要调用的方式是。

a.out –q –h N –t N File1 File2 ....Filen  
(-h N : Print the top N lines from each file
 -t N : The bottom N lines from each file)  
 -q   : Do not print the header giving the file names"

(我真的不知道最后一行是什么意思)

我几乎不知道如何处理这类问题。这已经超出了我的教学大纲。我怎么才能解决这个问题或者发现正确的方向呢?可以假设我有基本的C语言编程知识,但为了不引起任何怀疑,在指出方向的同时请假设我的知识非常少。

c ubuntu
1个回答
1
投票

在这个任务中,有一件事很重要,在源码中,小数量。 像这样的应用程序不长在树上,你必须选择一个或两个部分。

先写代码打开命令行指定的文件,读写到缓冲区数组中,并将其内容全部转储到终端,然后关闭。

然后加上打印出文件名作为头。

然后再想办法,不直接转储,而是一次读一行写一行。

然后你可以添加一个行计数器,这样就可以只打印前N行。

然后你将需要一个 "循环缓冲区 "的字符串空间,在那里你可以只保存最后读取的N行--那将是你 "保存 "最后N行的运行列表的地方,当你到达文件的末端时,就可以打印出来。

然后把你所拥有的东西放到一个函数中,你可以调用多个文件名,或者多个FILE*。

不要进行下一步,直到当前的一个100%工作,据你所知,通过测试它。 它是否能用一个空文件工作? 它是否能在在线文件中工作?是否有任何不需要的行或额外的换行? 当这个步骤都能工作时,把它归档,因为当你开始下一步时,它就会全部爆炸:)

我几乎不知道如何处理这种类型的问题。

你每次都要一点一点地接近它。我所做过的每一个项目,一开始我都不知道如何去做,但是,最终,它都能完成,(或者由于时间成本超支而取消:)。

如果你按照这样的方法去做,你总会有一些东西可以交上去,即使它不完整。

© www.soinside.com 2019 - 2024. All rights reserved.