귀하의 작업은 nl
GNU 핵심 유틸리티 의 명령 줄 도구 와 유사한 프로그램을 구현하는 것 입니다.
표준 허점 은 금지되어 있습니다.
nl
자체 또는 =
GNU sed 의 명령 과 같이 파일 또는 문자열의 줄 번호를 지정하기 위해 내장 또는 외부 함수, 프로그램 또는 유틸리티를 사용할 수 없습니다 .
사양
입력
프로그램은 파일 이름을 인수로 허용합니다. 코드가 크로스 플랫폼 일 필요는 없습니다. 코드를 실행하는 OS의 파일 이름 형식을 사용해야합니다. 예를 들어 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 개의 선행 공백이 있습니다. ...). 입력이 충분히 길면 line에 줄 번호를위한 공간이 부족하게됩니다 999999
. 999999 행 이후에는 아무것도 출력하지 않아야합니다.
입력이 비어 있으면 아무것도 출력하지 않습니다.
종료 상태
낮은 숫자가 우선합니다 : 오류 1과 2가 발생하면 상태 1로 종료하십시오.
입력이 성공적으로 수신되고 행의 번호가 매겨져 출력되면 상태 0으로 종료하십시오.
명령 행에 지정된 하나 이상의 파일을 찾을 수 없거나 읽을 수없는 경우 상태 1로 종료하십시오.
너무 많은 파일 (64 개 이상)이 제공된 경우 상태 2로 종료하십시오.
입력이 너무 길면 (999999 줄 이상) 상태 3으로 종료하십시오. \
채점
이것은 코드 골프입니다-가장 짧은 프로그램이 이깁니다!
nl
가지고있는 특정 옵션을 구현하기 위해 나중에 보너스를 추가 할 수 있습니다 . 현재 보너스가 없습니다.
prompt()
프로그램 args와 stdin을 에뮬레이트 할 수 있습니까?