8
行号-实现nl
您的任务是实现一个类似于nlGNU核心实用程序中的命令行工具的程序。 禁止出现标准漏洞。 您不得使用任何内置或外部函数,程序或实用程序来对文件或字符串的行进行编号,例如文件nl本身或=GNU sed中的命令。 规格 输入值 该程序接受文件名作为参数。您的代码不必跨平台。应该使用运行代码的操作系统的文件名格式,即,如果您恰巧在Windows上,则目录分隔符可以为\或/。 您必须能够获取64个输入文件,包括-已指定的文件。如果给出的数目超过64,则仅处理前64个。 在文件名列表中,-代表标准输入。 如果给出了文件名,请按给出的顺序读取文件并连接其内容,并在文件名和末尾之间插入新行。如果您无法读取一个或多个文件名(因为文件不存在或您没有读取权限),请忽略它们。如果指定的所有文件名均无效,则不输出任何内容。 如果未提供文件名,请从标准输入中读取。如果未提供文件名或未提供文件名,则仅从标准输入中读取-。 输出量 程序将输出带有标准行编号的输入作为标准输出(您可以假定输入具有\n,\r\n或\r行尾;请选择对您方便的任何一种,但要指定哪一个): <5 spaces>1<tab><content of line 1 of input> <5 spaces>2<tab><content of line 2 of input> ... <4 spaces>10<tab><content of line 10 of input> ... <3 spaces>100<tab><content of line 100 of input> ... ... 行号分配了6个空格,并在这些字符的末尾插入;其余的变成空格(例如1将有5个前导空格,22将有4个前导空格,...)。如果输入足够长,则最终将在行上用完行号的空间999999。在999999行之后,您不得输出任何内容。 如果输入为空,则不输出任何内容。 退出状态 较低的数字优先:如果遇到错误1和2,则以状态1退出。 如果成功接收到输入,并且状态行成功编号并输出,则以状态0退出。 …