/*
เขียนโปรแกรม เพื่อดึงตัวเลขจำนวนเต็มที่ถูกบันทึกไว้ในไฟล์ไบนารี num.dat โดยโปรแกรมจะถูกเขียนโดยไม่ทราบล่วงหน้าว่า มีตัวเลขจำนวนกี่ตัวในไฟล์ดังกล่าว และไม่มีการอ่านข้อมูลทั้งหมดขึ้นสู่อาเรย์
โปรแกรมจะรับข้อมูลจากผู้ใช้ ว่า ต้องการทราบตัวเลขลำดับใด (ให้ลำดับแรกคือ 1) หลังจากนั้น จะแสดงตัวเลขที่อยู่ ณ. ตำแหน่งที่กำหนด
โปรแกรมจะหยุดการทำงานเมื่อผู้ใช้ใส่ตำแหน่งเป็น 0 หรือค่าติดลบ ทั้งนี้ให้ถือว่า ผู้ใช้จะไม่ใส่ตำแหน่งที่ไม่มีอยู่จริงในไฟล์
ตัวอย่างการแสดงผล
Enter: <1>
= 40
Enter: <372>
= 68
Enter: <250>
= 12
Enter: <0>
Done.
***ทำการแสดงผลจากการอ่านออกทางหน้าจอ สำหรับการอ่านไฟล์นั้นจะต้องทำการกดปุ่ม L-Test ก่อน เพื่อ download ไฟล์มาเก็บไว้ในเครื่องโดยอัตโนมัติ แล้วค่อยทำการรันโปรแกรม***
*/
#include<stdio.h>
//Coe CPT lab5 part3
int main( ) {
FILE * fp;
int d,position;
fp = fopen ( "num.dat" ,"rb" ) ;
while ( 1 ) {
printf ( "Enter: " ) ;
scanf ( "%d" ,& position) ;
if ( position== 0 )
break ;
fseek ( fp,( position- 1 ) * sizeof ( int ) ,SEEK_SET ) ;
fread ( & d,sizeof ( d) ,1 ,fp) ;
printf ( "= %d\n " , d) ;
}
printf ( "Done.\n " ) ;
fclose ( fp) ;
return 0 ;
}
LyoK4LmA4LiC4Li14Lii4LiZ4LmC4Lib4Lij4LmB4LiB4Lij4LihIOC5gOC4nuC4t+C5iOC4reC4lOC4tuC4h+C4leC4seC4p+C5gOC4peC4guC4iOC4s+C4meC4p+C4meC5gOC4leC5h+C4oeC4l+C4teC5iOC4luC4ueC4geC4muC4seC4meC4l+C4tuC4geC5hOC4p+C5ieC5g+C4meC5hOC4n+C4peC5jOC5hOC4muC4meC4suC4o+C4tSBudW0uZGF0IOC5guC4lOC4ouC5guC4m+C4o+C5geC4geC4o+C4oeC4iOC4sOC4luC4ueC4geC5gOC4guC4teC4ouC4meC5guC4lOC4ouC5hOC4oeC5iOC4l+C4o+C4suC4muC4peC5iOC4p+C4h+C4q+C4meC5ieC4suC4p+C5iOC4siDguKHguLXguJXguLHguKfguYDguKXguILguIjguLPguJnguKfguJnguIHguLXguYjguJXguLHguKfguYPguJnguYTguJ/guKXguYzguJTguLHguIfguIHguKXguYjguLLguKcg4LmB4Lil4Liw4LmE4Lih4LmI4Lih4Li14LiB4Liy4Lij4Lit4LmI4Liy4LiZ4LiC4LmJ4Lit4Lih4Li54Lil4LiX4Lix4LmJ4LiH4Lir4Lih4LiU4LiC4Li24LmJ4LiZ4Liq4Li54LmI4Lit4Liy4LmA4Lij4Lii4LmMCgrguYLguJvguKPguYHguIHguKPguKHguIjguLDguKPguLHguJrguILguYnguK3guKHguLnguKXguIjguLLguIHguJzguLnguYnguYPguIrguYkg4Lin4LmI4LiyIOC4leC5ieC4reC4h+C4geC4suC4o+C4l+C4o+C4suC4muC4leC4seC4p+C5gOC4peC4guC4peC4s+C4lOC4seC4muC5g+C4lCAo4LmD4Lir4LmJ4Lil4Liz4LiU4Lix4Lia4LmB4Lij4LiB4LiE4Li34LitIDEpIOC4q+C4peC4seC4h+C4iOC4suC4geC4meC4seC5ieC4mSDguIjguLDguYHguKrguJTguIfguJXguLHguKfguYDguKXguILguJfguLXguYjguK3guKLguLnguYgg4LiTLiDguJXguLPguYHguKvguJnguYjguIfguJfguLXguYjguIHguLPguKvguJnguJQKCuC5guC4m+C4o+C5geC4geC4o+C4oeC4iOC4sOC4q+C4ouC4uOC4lOC4geC4suC4o+C4l+C4s+C4h+C4suC4meC5gOC4oeC4t+C5iOC4reC4nOC4ueC5ieC5g+C4iuC5ieC5g+C4quC5iOC4leC4s+C5geC4q+C4meC5iOC4h+C5gOC4m+C5h+C4mSAwIOC4q+C4o+C4t+C4reC4hOC5iOC4suC4leC4tOC4lOC4peC4miDguJfguLHguYnguIfguJnguLXguYnguYPguKvguYnguJbguLfguK3guKfguYjguLIg4Lic4Li54LmJ4LmD4LiK4LmJ4LiI4Liw4LmE4Lih4LmI4LmD4Liq4LmI4LiV4Liz4LmB4Lir4LiZ4LmI4LiH4LiX4Li14LmI4LmE4Lih4LmI4Lih4Li14Lit4Lii4Li54LmI4LiI4Lij4Li04LiH4LmD4LiZ4LmE4Lif4Lil4LmMIAoK4LiV4Lix4Lin4Lit4Lii4LmI4Liy4LiH4LiB4Liy4Lij4LmB4Liq4LiU4LiH4Lic4LilCkVudGVyOiA8MT4KPSA0MApFbnRlcjogPDM3Mj4KPSA2OApFbnRlcjogPDI1MD4KPSAxMgpFbnRlcjogPDA+CkRvbmUuCgoqKirguJfguLPguIHguLLguKPguYHguKrguJTguIfguJzguKXguIjguLLguIHguIHguLLguKPguK3guYjguLLguJnguK3guK3guIHguJfguLLguIfguKvguJnguYnguLLguIjguK0g4Liq4Liz4Lir4Lij4Lix4Lia4LiB4Liy4Lij4Lit4LmI4Liy4LiZ4LmE4Lif4Lil4LmM4LiZ4Lix4LmJ4LiZ4LiI4Liw4LiV4LmJ4Lit4LiH4LiX4Liz4LiB4Liy4Lij4LiB4LiU4Lib4Li44LmI4LihIEwtVGVzdCDguIHguYjguK3guJkg4LmA4Lie4Li34LmI4LitIGRvd25sb2FkIOC5hOC4n+C4peC5jOC4oeC4suC5gOC4geC5h+C4muC5hOC4p+C5ieC5g+C4meC5gOC4hOC4o+C4t+C5iOC4reC4h+C5guC4lOC4ouC4reC4seC4leC5guC4meC4oeC4seC4leC4tCDguYHguKXguYnguKfguITguYjguK3guKLguJfguLPguIHguLLguKPguKPguLHguJnguYLguJvguKPguYHguIHguKPguKEqKioKKi8KI2luY2x1ZGU8c3RkaW8uaD4KLy9Db2UgQ1BUIGxhYjUgcGFydDMKaW50IG1haW4oKXsKICAgIEZJTEUgKmZwOwogICAgaW50IGQscG9zaXRpb247CiAgICBmcCA9IGZvcGVuKCJudW0uZGF0IiwicmIiKTsKICAgICAgICB3aGlsZSgxKXsKICAgICAgICAgICAgcHJpbnRmKCJFbnRlcjogIik7CiAgICAgICAgICAgIHNjYW5mKCIlZCIsJnBvc2l0aW9uKTsKICAgICAgICAgICAgaWYocG9zaXRpb249PTApCiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZnNlZWsoZnAsKHBvc2l0aW9uLTEpKnNpemVvZihpbnQpLFNFRUtfU0VUKTsKICAgICAgICAgICAgZnJlYWQoJmQsc2l6ZW9mKGQpLDEsZnApOwogICAgICAgICAgICBwcmludGYoIj0gJWRcbiIsIGQpOwogICAgICAgICAgICAKICAgICAgICB9CnByaW50ZigiRG9uZS5cbiIpOwogICAgZmNsb3NlKGZwKTsKICAgIHJldHVybiAwOwp9
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