ฉันต้องการอ่านรายการคำจากไฟล์ซึ่งมีหนึ่งคำต่อบรรทัด คำควรมีอักขระไม่เกิน 4 ตัวต่อคำ ฉันจะสร้างข้อผิดพลาดได้อย่างไรหากบรรทัดใดบรรทัดหนึ่งยาวกว่านั้น
ฉันลองอ่านคำศัพท์โดยใช้ fgets
char buf[5];
fgets(buf, 5, stdin);
และด้วย scanf
char buf[5];
scanf("%4s", &buf);
แต่ในทั้งสองกรณีจะแยกเส้นยาวออกเป็นเส้นเล็ก เช่น qwerasdf
อ่านเป็นสองคำ qwer
และ asdf
มีวิธีตรวจสอบหรือไม่ว่าพยายามอ่านบรรทัดยาวที่มีอักขระมากกว่า 4 ตัวแล้วเกิดข้อผิดพลาดแทน
ทางเลือกเดียวที่ฉันคิดได้คือการอ่านอักขระที่ป้อนทีละอักขระและดูแลทุกอย่างด้วยตัวเอง แต่มีวิธีแก้ไขปัญหาที่ง่ายกว่านี้หรือไม่โดยใช้ฟังก์ชันจากไลบรารีมาตรฐาน
fgets
ของคุณ - person Jongware   schedule 14.04.2020