//CPT lab5 Read Binary File
/*
จงเขียนโปรแกรมที่ทำการอ่านไฟล์ไบนารี ชื่อ employee.bin
โดยไฟล์จะเริ่มต้นจากตัวเลขจำนวนเต็ม บอกจำนวนข้อมูลพนักงานที่บันทึกไว้ในไฟล์ จากนั้นประมวลผลข้อมูลให้อยู่ในรูปของ struct employee ที่กำหนดให้ แล้วทำการแสดงข้อมูลของพนักงานทุกคน พร้อมแสดงผลเงินเดือนรวม
***ทำการแสดงผลจากการอ่านออกทางหน้าจอ สำหรับการอ่านไฟล์นั้นจะต้องทำการกดปุ่ม L-Test ก่อน เพื่อ download ไฟล์มาเก็บไว้ในเครื่องโดยอัตโนมัติ แล้วค่อยทำการรันโปรแกรม***
รูปแบบการแสดงผล
John Doe:3000.0
Mark Ken:2300.0
Sucy Merc:2000.0
=7300.0
*/
#include <stdio.h>
struct employee {
char name[ 128 ] ;
float salary;
} ;
typedef struct employee Employee;
int main( ) {
int num;
Employee e,* ep= & e;
float total = 0.0 ;
FILE * fp;
fp = fopen ( "employee.bin" ,"rb" ) ;
fread ( & num,sizeof ( num) ,1 ,fp) ;
while ( num-- ) {
fread ( & e,sizeof ( Employee) ,1 ,fp) ;
printf ( "%s:%.1f\n " , e.name , e.salary ) ;
total+ = e.salary ;
}
printf ( "=%.1f\n " , total) ;
fclose ( fp) ;
return 0 ;
}
Ly9DUFQgbGFiNSBSZWFkIEJpbmFyeSBGaWxlCi8qCuC4iOC4h+C5gOC4guC4teC4ouC4meC5guC4m+C4o+C5geC4geC4o+C4oeC4l+C4teC5iOC4l+C4s+C4geC4suC4o+C4reC5iOC4suC4meC5hOC4n+C4peC5jOC5hOC4muC4meC4suC4o+C4tSDguIrguLfguYjguK0gZW1wbG95ZWUuYmluIArguYLguJTguKLguYTguJ/guKXguYzguIjguLDguYDguKPguLTguYjguKHguJXguYnguJnguIjguLLguIHguJXguLHguKfguYDguKXguILguIjguLPguJnguKfguJnguYDguJXguYfguKEg4Lia4Lit4LiB4LiI4Liz4LiZ4Lin4LiZ4LiC4LmJ4Lit4Lih4Li54Lil4Lie4LiZ4Lix4LiB4LiH4Liy4LiZ4LiX4Li14LmI4Lia4Lix4LiZ4LiX4Li24LiB4LmE4Lin4LmJ4LmD4LiZ4LmE4Lif4Lil4LmMIOC4iOC4suC4geC4meC4seC5ieC4meC4m+C4o+C4sOC4oeC4p+C4peC4nOC4peC4guC5ieC4reC4oeC4ueC4peC5g+C4q+C5ieC4reC4ouC4ueC5iOC5g+C4meC4o+C4ueC4m+C4guC4reC4hyBzdHJ1Y3QgZW1wbG95ZWUg4LiX4Li14LmI4LiB4Liz4Lir4LiZ4LiU4LmD4Lir4LmJIOC5geC4peC5ieC4p+C4l+C4s+C4geC4suC4o+C5geC4quC4lOC4h+C4guC5ieC4reC4oeC4ueC4peC4guC4reC4h+C4nuC4meC4seC4geC4h+C4suC4meC4l+C4uOC4geC4hOC4mSDguJ7guKPguYnguK3guKHguYHguKrguJTguIfguJzguKXguYDguIfguLTguJnguYDguJTguLfguK3guJnguKPguKfguKEKCioqKuC4l+C4s+C4geC4suC4o+C5geC4quC4lOC4h+C4nOC4peC4iOC4suC4geC4geC4suC4o+C4reC5iOC4suC4meC4reC4reC4geC4l+C4suC4h+C4q+C4meC5ieC4suC4iOC4rSDguKrguLPguKvguKPguLHguJrguIHguLLguKPguK3guYjguLLguJnguYTguJ/guKXguYzguJnguLHguYnguJnguIjguLDguJXguYnguK3guIfguJfguLPguIHguLLguKPguIHguJTguJvguLjguYjguKEgTC1UZXN0IOC4geC5iOC4reC4mSDguYDguJ7guLfguYjguK0gZG93bmxvYWQg4LmE4Lif4Lil4LmM4Lih4Liy4LmA4LiB4LmH4Lia4LmE4Lin4LmJ4LmD4LiZ4LmA4LiE4Lij4Li34LmI4Lit4LiH4LmC4LiU4Lii4Lit4Lix4LiV4LmC4LiZ4Lih4Lix4LiV4Li0IOC5geC4peC5ieC4p+C4hOC5iOC4reC4ouC4l+C4s+C4geC4suC4o+C4o+C4seC4meC5guC4m+C4o+C5geC4geC4o+C4oSoqKgoK4Lij4Li54Lib4LmB4Lia4Lia4LiB4Liy4Lij4LmB4Liq4LiU4LiH4Lic4LilCkpvaG4gRG9lOjMwMDAuMApNYXJrIEtlbjoyMzAwLjAKU3VjeSBNZXJjOjIwMDAuMAo9NzMwMC4wCiovCiNpbmNsdWRlIDxzdGRpby5oPgpzdHJ1Y3QgZW1wbG95ZWUgewogIGNoYXIgbmFtZVsxMjhdOwogIGZsb2F0IHNhbGFyeTsKfTsKdHlwZWRlZiBzdHJ1Y3QgZW1wbG95ZWUgRW1wbG95ZWU7CgppbnQgbWFpbigpIHsKICBpbnQgbnVtOwogIEVtcGxveWVlIGUsKmVwPSZlOwogIGZsb2F0IHRvdGFsID0gMC4wOwogIEZJTEUgKmZwOwoKICBmcCA9IGZvcGVuKCJlbXBsb3llZS5iaW4iLCJyYiIpOwogICAgICAgIGZyZWFkKCZudW0sc2l6ZW9mKG51bSksMSxmcCk7CiAgd2hpbGUobnVtLS0pewogICAgZnJlYWQoJmUsc2l6ZW9mKEVtcGxveWVlKSwxLGZwKTsKICAgIHByaW50ZigiJXM6JS4xZlxuIiwgZS5uYW1lLCBlLnNhbGFyeSk7CiAgICB0b3RhbCs9ZS5zYWxhcnk7CiAgICB9CnByaW50ZigiPSUuMWZcbiIsIHRvdGFsKTsKZmNsb3NlKGZwKTsKICByZXR1cm4gMDsJCn0KCg==
compilation info
prog.cpp: In function ‘int main()’:
prog.cpp:23: warning: unused variable ‘ep’
prog.cpp:28: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result
prog.cpp:30: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result
stdout