ï FILE dã Ä o rô qî ô Ö ƒù å o ô ÃÓ FILE Ã Ù Ö o v-> ª w ï FILE d wã +1 ~ c:\temp w Õx test.dat Ã Û vä à n ïw à test.dat 13-2a /* File name: ex13-2a.c */ #include <conio.h> char ch; fptr = fopen("c:\\temp\\test.dat", "w"); while((ch = getche())!= ' ') fputc(ch, fptr); Computer 13-3
~ 13-2a /* */ fptr áù FILE ÃÙ FILE Ó ~ stdio.h rlnù wí Ù Ã ¹ fptr Ù ô Î ~ fopen o à FILE qô uá u ë FILE à file Û ¾ à fptr = fopen("c:\\temp\\test.dat", "w" ); /* */ ½ Û\\ Û\ ~á\\èx\ fopen ƒ ô ô Û ôû à ª ½ ô äá Ú l h Ù Ã ª ƒ ª v r ª w a Én á r s ~io w Èx à ½ à a áén Èx n~ ë ªÃ á w µ a Î Õ 13-4
ƒei text file «binary file ÍÄ Ã äli Îv 0 1 äûi Îli ª ë ƒ ÃÈx Îl Èx åä 123.456 ëli à Π7 ô bytes l à Îqî 4 ô bytes Ëo v oã l ïã r w a Ûi à ª qûrôäå t rô Û Ã rt wt at t Èx text file ë rôû binary file Î á rb wb ab o r à ª ƒ r+ w+ a+ Èx Ûo ª à ~ Ûo o à ô v ô ª oœo Ó ô Ù Ã ïã ô à fptr á Ù c:\temp w test.dat à ٠l à ª á à fptr test.dat Û I/O Ãþ t Œv fputc( ch, fptr ); /* */ ch dü fptr µùã á test.dat à fputc q Û I/O þ à ô l à Ãd r I/O Ãþ Ä ½ à ¾ ã s à à n r à ~óáš ~ ÄÕ o t Š à Ž sœ sîã ôolý Ý 13-5
v Îs r µx fclose( fptr ); /* q */ ½ fclose ñ ÛÙ Û test.dat ~á Ã Û Ù ~ ˆÃ ~ qîù Ù ËÈx à Œv Õx Ö ŠÃ ÛŽu ƒ i á~ DOS µ ri à n áœvq ª à à n x~ ex13-2a.c µ ª à 13-2b /* File name: ex13-2b.c */ char ch; fptr = fopen("c:\\temp\\test.dat", "r"); while((ch = fgetc(fptr))!= EOF) printf("%c", ch); Computer Œv while fptr µùã dù ch Œ ch ÛŽá EOF ë Û Î d à áj ½ while( ( ch = fgetc(fptr) )!= EOF ) Ù oå 13-6
½ ë ôù å Îá while( ch = fgetc(fptr)!= EOF ) v¹!=ã ¹= ÚÈx ˆ fgetc(fptr)!= EOF fptr µùã dûžá EOF»Ù ch ch Ûg qƒ 0 µ 1 Û EOF ch óá 1 Èx ëû EOF Î ch á 0 Èx ~ «Ã while þ Ûå à ô ï n ~ v väs w înù ÛÊ ðîã ŽÎ n û ~ dã I/O ï fgetc fputc ƒ Û getc putc qûöäû r Ùm macro Ä ˆ ex13-2a.c ex13-2b.c à fputc «fgetc á putc «getc n»áš w Ž l putc «getc 13-2a 13-2b»ƒŠ Œv ô n FILE d wãdüáš 13-7
+1 ƒ dã I/O ƒ à I/O vä Ûl á à I/O Û Ã C fputs «fgets á à I/O puts gets Û Ã I/O Ðô æ 13-3a /* File name: ex13-3a.c */ #include <string.h> char str[81]; fptr = fopen("c:\\temp\\str.dat", "w"); while(strlen(gets(str)) > 0) fputs(str, fptr); fputs("\n", fptr); computer world c language world Œv strlen( gets(str) ) > 0 Œ à ێ ¹ 0 ë Û ¹ 0 Èx t Ø Enter Ë ë ¹ 0 ÎŒv fputs( str, fptr ); str à fptr µùã str á 81 ô d 80 ô dn Äw d '\0' Null character Ã ó ½ Ã Û v¹ fputs œƒ ˆÃ d á ië Œv 13-8
fputs("\n", fptr ); ˆ fputs ƒ ô ôá ôá Ù FILE à ٠fputs ÃÛ fgets n á Ù Ã ª µx 13-3b /* File name: ex13-3b.c */ char str[81]; fptr = fopen("c:\\temp\\str.dat", "r"); while(fgets(str, 80, fptr)!= NULL) printf("%s", str); computer world c language world fgets ƒ ô ô«ô fputs ô Èx ªÃ ÉÕ fgets( str, 80, fptr ); ÉÕ Ã 80 fputs ~á~ ô 80 ô d 13-9
l r s ~¹ l w µ a ë ~ ˆÕx ô à ë ~ w dü a Î l fgets ÛŽá NULL Œ ÛŽ r C feof î Œ Ù ÛŽ ¾á feof(fptr) l à ٠á ë feof ~Ê ó ŽÎ ~ 0 13-3c /* File name: ex13-3c.c */ char str[81]; fptr = fopen("c:\\temp\\str.dat", "r"); while(!feof(fptr)) if(fgets(str, 80, fptr)) printf("%s", str); computer world c language world l while(!feof(fptr)) Œ Ù ÛŽ t feof ~ 0 Ú!feof(fptr)á Èx ƒ while ˆ 13-10