fork(23) download
  1. /*
  2. เขียนโปรแกรม เพื่อดึงตัวเลขจำนวนเต็มที่ถูกบันทึกไว้ในไฟล์ไบนารี num.dat โดยโปรแกรมจะถูกเขียนโดยไม่ทราบล่วงหน้าว่า มีตัวเลขจำนวนกี่ตัวในไฟล์ดังกล่าว และไม่มีการอ่านข้อมูลทั้งหมดขึ้นสู่อาเรย์
  3.  
  4. โปรแกรมจะรับข้อมูลจากผู้ใช้ ว่า ต้องการทราบตัวเลขลำดับใด (ให้ลำดับแรกคือ 1) หลังจากนั้น จะแสดงตัวเลขที่อยู่ ณ. ตำแหน่งที่กำหนด
  5.  
  6. โปรแกรมจะหยุดการทำงานเมื่อผู้ใช้ใส่ตำแหน่งเป็น 0 หรือค่าติดลบ ทั้งนี้ให้ถือว่า ผู้ใช้จะไม่ใส่ตำแหน่งที่ไม่มีอยู่จริงในไฟล์
  7.  
  8. ตัวอย่างการแสดงผล
  9. Enter: <1>
  10. = 40
  11. Enter: <372>
  12. = 68
  13. Enter: <250>
  14. = 12
  15. Enter: <0>
  16. Done.
  17.  
  18. ***ทำการแสดงผลจากการอ่านออกทางหน้าจอ สำหรับการอ่านไฟล์นั้นจะต้องทำการกดปุ่ม L-Test ก่อน เพื่อ download ไฟล์มาเก็บไว้ในเครื่องโดยอัตโนมัติ แล้วค่อยทำการรันโปรแกรม***
  19. */
  20. #include<stdio.h>
  21. //Coe CPT lab5 part3
  22. int main(){
  23. FILE *fp;
  24. int d,position;
  25. fp = fopen("num.dat","rb");
  26. while(1){
  27. printf("Enter: ");
  28. scanf("%d",&position);
  29. if(position==0)
  30. break;
  31. fseek(fp,(position-1)*sizeof(int),SEEK_SET);
  32. fread(&d,sizeof(d),1,fp);
  33. printf("= %d\n", d);
  34.  
  35. }
  36. printf("Done.\n");
  37. fclose(fp);
  38. return 0;
  39. }
stdin
Standard input is empty
compilation info
prog.cpp: In function ‘int main()’:
prog.cpp:28: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result
prog.cpp:32: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result
stdout
Standard output is empty