งานของคุณคือการใช้โปรแกรมคล้ายกับnl
เครื่องมือบรรทัดคำสั่งจากยูทิลิตี้หลักของ GNU
ช่องโหว่มาตรฐานถูกแบน
คุณไม่สามารถใช้ฟังก์ชันโปรแกรมหรือยูทิลิตี้ในตัวหรือภายนอกสำหรับกำหนดหมายเลขบรรทัดของไฟล์หรือสตริงเช่น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 หากได้รับอินพุตเรียบร้อยแล้วและบรรทัดที่มีหมายเลขและเอาต์พุตสำเร็จ
ออกด้วยสถานะ 1 หากไม่พบไฟล์หนึ่งไฟล์ขึ้นไปที่ระบุในบรรทัดคำสั่งหรือไม่สามารถอ่านได้
ออกจากสถานะ 2 หากได้รับไฟล์มากเกินไป (มากกว่า 64)
ออกจากสถานะ 3 หากอินพุตยาวเกินไป (มากกว่า 999999 บรรทัด)
เกณฑ์การให้คะแนน
นี่คือ code-golf - โปรแกรมที่สั้นที่สุดชนะ!
ฉันอาจเพิ่มโบนัสในภายหลังสำหรับการใช้งานตัวเลือกบางอย่างที่nl
มี ไม่มีโบนัสในขณะนี้
prompt()
เลียนแบบโปรแกรม args และ stdin ได้ไหม?