8
行番号-nlを実装する
あなたの仕事はnl、GNUコアユーティリティのコマンドラインツールに似たプログラムを実装することです。 標準的な抜け穴は禁止されています。 GNU sedのコマンドnlや=コマンドなど、ファイルまたは文字列の行に番号を付けるために、組み込みまたは外部の関数、プログラム、またはユーティリティを使用することはできません。 仕様 入力 プログラムは引数としてファイル名を受け入れます。コードはクロスプラットフォームである必要はありません。コードを実行しているOSのファイル名形式を使用する必要があります。つまり、Windowsを使用している場合、ディレクトリ区切り文字は\または/です。 -指定されている場合を含め、64個の入力ファイルを取得できる必要があります。64を超える場合は、最初の64のみを処理します。 ファイル名のリストで、-標準入力を表します。 ファイル名が指定されている場合は、指定された順序でファイルから読み取り、内容を連結し、各ファイルの間に新しい行を挿入します。1つまたは複数のファイル名から読み取ることができない場合(ファイルが存在しないか、読み取り権限がないため)、無視します。指定されたすべてのファイル名が無効な場合、何も出力しません。 ファイル名が指定されていない場合は、標準入力から読み取ります。ファイル名が指定されていない場合、または指定されている場合にのみ、標準入力から読み取ります-。 出力 プログラムは、このように番号が付けられた行で入力を標準出力に出力します(入力に\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つのスペースがあります...)。入力が十分に長い場合、最終的にlineの行番号のスペースが不足します999999。999999行目以降は何も出力しないでください。 入力が空の場合、何も出力しません。 終了ステータス 低い番号が優先されます。エラー1および2が発生した場合、ステータス1で終了します。 入力が正常に受信され、行が正常に番号付けされて出力された場合、ステータス0で終了します。 …