fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. #define MAX_LINE_LENGTH 1024
  5.  
  6. void check_files(const char *bom_file, const char *user_file) {
  7. FILE *bom, *user;
  8. char bom_line[MAX_LINE_LENGTH], user_line[MAX_LINE_LENGTH];
  9. int line_number = 1;
  10.  
  11. // เปิดไฟล์ BOM และไฟล์ที่ผู้ใช้เขียนขึ้น
  12. bom = fopen(bom_file, "r");
  13. if (bom == NULL) {
  14. printf("ไม่พบไฟล์ BOM: %s\n", bom_file);
  15. return;
  16. }
  17.  
  18. user = fopen(user_file, "r");
  19. if (user == NULL) {
  20. printf("ไม่พบไฟล์ที่ผู้ใช้เขียนขึ้น: %s\n", user_file);
  21. fclose(bom);
  22. return;
  23. }
  24.  
  25. // อ่านบรรทัดทีละบรรทัดและตรวจสอบความถูกต้อง
  26. while (fgets(bom_line, MAX_LINE_LENGTH, bom) != NULL && fgets(user_line, MAX_LINE_LENGTH, user) != NULL) {
  27. // ตัดเครื่องหมาย newline ออกจากท้ายบรรทัด
  28. bom_line[strcspn(bom_line, "\n")] = '\0';
  29. user_line[strcspn(user_line, "\n")] = '\0';
  30.  
  31. // เปรียบเทียบบรรทัดจากไฟล์ BOM และไฟล์ที่ผู้ใช้เขียนขึ้น
  32. if (strcmp(bom_line, user_line) != 0) {
  33. printf("บรรทัดที่ %d ไม่ถูกต้อง โปรดตรวจสอบ\n", line_number);
  34. }
  35.  
  36. line_number++;
  37. }
  38.  
  39. // ตรวจสอบหากจำนวนบรรทัดไม่ตรงกัน
  40. if (fgets(bom_line, MAX_LINE_LENGTH, bom) != NULL || fgets(user_line, MAX_LINE_LENGTH, user) != NULL) {
  41. printf("จำนวนบรรทัดในไฟล์ไม่เท่ากัน!\n");
  42. }
  43.  
  44. // ปิดไฟล์
  45. fclose(bom);
  46. fclose(user);
  47. }
  48.  
  49. int main() {
  50. const char *bom_file = "bom_file.txt";
  51. const char *user_file = "user_file.txt";
  52.  
  53. // เรียกฟังก์ชันเพื่อเปรียบเทียบไฟล์
  54. check_files(bom_file, user_file);
  55.  
  56. return 0;
  57. }
Success #stdin #stdout 0s 5284KB
stdin
Standard input is empty
stdout
ไม่พบไฟล์ BOM: bom_file.txt