17-2-´Ù.ÆÄÀÏ ¾×¼¼½º

ÆÄÀÏÀ» ¿­¾úÀ¸¸é ÆÄÀϾÈÀÇ ³»¿ëÀ» ÀÐ°í ¾´´Ù. ¸ÕÀú °£´ÜÇÑ Æ÷¸ËÀÎ ¹®ÀÚ¿­ºÎÅÍ ÀÔÃâ·ÂÇØ º¸ÀÚ. À̶§´Â ´ÙÀ½ µÎ ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù. ¸ðµç ÆÄÀÏ ÀÔÃâ·Â ÇÔ¼ö´Â ´ë»ó ½ºÆ®¸²À» Àü´ÞÇϱâ À§ÇØ FILEÇüÀÇ ±¸Á¶Ã¼ Æ÷ÀÎÅ͸¦ Àμö·Î ÃëÇÑ´Ù´Â Á¡¿¡¼­ °øÅëÀûÀÌ´Ù.

 

char *fgets(char *string, int n, FILE *stream);

int fputs(const char *string, FILE *stream);

 

fgets°¡ ÆÄÀÏ¿¡¼­ ¹®ÀÚ¿­À» ÀоîµéÀÌ´Â ÇÔ¼öÀÌ´Ù. ÀоîµéÀÎ ¹®ÀÚ¿­À» ÀúÀåÇÒ ¹öÆÛ¸¦ ù ¹øÂ° Àμö·Î ÁÖ°í µÎ ¹øÂ° Àμö·Î ÀÌ ¹öÆÛÀÇ Å©±â¸¦ ¾Ë·Á ÁØ´Ù. fgets´Â ÃÖÃÊÀÇ °³Çà ¹®ÀÚ¸¦ ¸¸³¯ ¶§±îÁö ¶Ç´Â ¹öÆÛÀÇ ±æÀ̸¸Å­ ¹®ÀÚ¿­À» ÀоîµéÀ̹ǷΠÀÌ ÇÔ¼ö¸¦ ¹Ýº¹ÀûÀ¸·Î È£ÃâÇϸé ÅØ½ºÆ® ÆÄÀÏÀ» ÁÙ ´ÜÀ§·Î ÀÐÀ» ¼ö ÀÖ´Ù. ÅØ½ºÆ® ÆÄÀÏÀÇ ÇÑ ÁÙÀº Åë»ó 80¹®ÀÚ Á¤µµ µÇ¹Ç·Î ¹öÆÛ´Â 256Á¤µµ¸é ºñ±³Àû ÃæºÐÇÏ´Ù. ¸¸¾à Àд µµÁß¿¡ ¿¡·¯°¡ ¹ß»ýÇ߰ųª ÆÄÀÏ ³¡¿¡ µµ´ÞÇßÀ¸¸é NULLÀ» ¸®ÅÏÇÑ´Ù.

fputs´Â ù ¹øÂ° Àμö·Î Àü´ÞµÈ ¹®ÀÚ¿­À» ÆÄÀÏ·Î Ãâ·ÂÇϴµ¥ Áß°£¿¡ °³Çà ¹®ÀÚ°¡ ÀÖ´õ¶óµµ ÇѲ¨¹ø¿¡ Ãâ·ÂÇÑ´Ù. ¸¸¾à Áß°£¿¡ ³Î Á¾·á ¹®ÀÚ¸¦ ¸¸³ª¸é ³Î Á¾·á ¹®ÀÚ ¾Õ±îÁö¸¸ Ãâ·ÂÇÑ´Ù. ´ÙÀ½ ¿¹Á¦´Â »õ·Î¿î ÆÄÀÏÀ» ¸¸µé°í ÀÌ ÆÄÀÏ¿¡ µÎ ÁÙ·Î µÈ ÅØ½ºÆ®¸¦ Ãâ·ÂÇÑ´Ù.

 

¿¹ Á¦ : fputs

#include <Turboc.h>

 

void main()

{

     FILE *f;

     char *str="ÀÌ ÆÄÀÏÀº C Ç¥ÁØ ÇÔ¼ö·Î »ý¼ºµÈ ÅØ½ºÆ® ÆÄÀÏÀÔ´Ï´Ù.\n"

          "Cµå¶óÀ̺êÀÇ ·çÆ® µð·ºÅ丮¿¡ Test.txt¶ó´Â À̸§À¸·Î »ý¼ºµË´Ï´Ù.\n";

 

     f=fopen("c:\\Test.txt","wt");

     if (f != NULL) {

          fputs(str,f);

          fclose(f);

     }

}

 

ÆÄÀÏ ÀÔÃâ·ÂÀ» À§ÇØ FILE ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅÍ f¸¦ ¼±¾ðÇϰí fopenÀ¸·Î ÆÄÀÏÀ» ¿­µÇ ¸ðµå´Â ¾²±â(w)·Î, ÆÄÀÏ ÇüÅÂ´Â ÅØ½ºÆ®(t)·Î ÁÖ¾î »õ·Î¿î ÅØ½ºÆ® ÆÄÀÏÀ» ¸¸µéµµ·Ï Çß´Ù. ÆÄÀÏÀÌ ¹«»çÈ÷ »ý¼ºµÇ¾úÀ¸¸é fputs ÇÔ¼ö·Î str ¹®ÀÚ¿­À» ÆÄÀÏ·Î Ãâ·ÂÇϰí fclose ÇÔ¼ö·Î ÆÄÀÏÀ» ´Ý¾Ò´Ù. str ¹®ÀÚ¿­³»¿¡ °³Çà ÄÚµå´Â '\n'À¸·Î ±â·ÏµÇ¾î ÀÖÁö¸¸ ÅØ½ºÆ® ¸ðµå·Î ÆÄÀÏÀ» »ý¼ºÇßÀ¸¹Ç·Î fputs°¡ ½ÇÁ¦·Î ÆÄÀÏ·Î Ãâ·ÂÇÏ´Â ÄÚµå´Â '\r\n'À¸·Î º¯È¯µÈ´Ù.

¿¹Á¦¸¦ ½ÇÇàÇÑ ÈÄ Å½»ö±â·Î È®ÀÎÇØ º¸¸é C µå¶óÀ̺êÀÇ ·çÆ® µð·ºÅ丮¿¡ Test.txt¶ó´Â ÆÄÀÏÀÌ »ý¼ºµÇ¾î ÀÖÀ» °ÍÀ̸ç ÀÌ ÆÄÀÏÀ» ¸Þ¸ðÀåÀ¸·Î ¿­¾î º¸¸é µÎ ÁÙÀÇ ÅØ½ºÆ®°¡ ÀúÀåµÇ¾î ÀÖÀ» °ÍÀÌ´Ù. ´ÙÀ½ ¿¹Á¦´Â ÀÌ·¸°Ô »ý¼ºµÈ ÅØ½ºÆ® ÆÄÀÏÀ» ´Ù½Ã Àо ÀúÀåµÈ ÅØ½ºÆ®¸¦ È­¸éÀ¸·Î Ãâ·ÂÇÑ´Ù.

 

¿¹ Á¦ : fgets

#include <Turboc.h>

 

void main()

{

     FILE *f;

     char buf[256];

 

     f=fopen("c:\\Test.txt","rt");

     if (f!=NULL) {

          for (;;) {

              if (fgets(buf,256,f)==NULL) {

                   break;

              }

              printf("%s",buf);

          }

          fclose(f);

     }

}

 

fopenÀ¸·Î ÀÐÀ» ÆÄÀÏÀ» ¿­µÇ À̹ø¿¡´Â Àб⠸ðµå(r)·Î ¿­¾úÀ¸¸ç fgets·Î ÇÑ ÁÙ¾¿ Àоî È­¸éÀ¸·Î Ãâ·ÂÇϱ⸦ ÆÄÀÏ ³¡¿¡ À̸¦ ¶§±îÁö ¹Ýº¹ÇÑ´Ù. Àб⿡ »ç¿ëÇÏ´Â buf´Â 256¸¸Å­ÀÇ Å©±â·Î ¼±¾ðÇß°í fread ÇÔ¼öÀÇ µÎ ¹øÂ° Àμö·Î ÇÑ ¹ø¿¡ 256¸¸Å­ ÀÐ¾î µéÀ̵µ·Ï Çߴµ¥ ÀÌ °ªÀº 2 ÀÌ»óÀÌ¸é ¾î¶² °ªÀ» Á־ »ó°ü¾ø´Ù. ´Ü, ÀÌ °ªÀÌ ³Ê¹« ÀÛÀ¸¸é Á¶±Ý¾¿ ¿©·¯ ¹ø Àоî¾ß ÇϹǷΠÀüüÀûÀÎ Àб⠼º´ÉÀÌ ¶³¾îÁú °ÍÀÌ´Ù. ½ÇÁ¦ ÇÁ·ÎÁ§Æ®¿¡¼­´Â ÃæºÐÈ÷ Å« °ªÀ» ÁÖ´Â °ÍÀÌ ÁÁ´Ù. feof ÇÔ¼ö´Â Àμö·Î ÁÖ¾îÁø ½ºÆ®¸²ÀÇ ³¡(EOF:End Of File)±îÁö Àоú´ÂÁö¸¦ Á¶»çÇÑ´Ù.

 

int feof(FILE *stream);

 

ÀÌ ÇÔ¼ö°¡ TRUE¸¦ ¸®ÅÏÇÒ ¶§±îÁö ¹Ýº¹ÀûÀ¸·Î fgets ÇÔ¼ö¸¦ È£ÃâÇÏ¸é ÆÄÀÏÀÇ ³¡±îÁö ¸ðµç ³»¿ëÀ» ÀÐÀ» ¼ö ÀÖ´Ù. ´ÙÀ½ µÎ ÇÔ¼ö´Â ½ºÆ®¸²À¸·ÎºÎÅÍ ¹®ÀÚ Çϳª¾¿À» ÀÔÃâ·ÂÇÑ´Ù.

 

int fgetc(FILE *stream);

int fputc(int c, FILE *stream);

 

ÀÔÃâ·Â À§Ä¡´Â ¹°·Ð FPÀ̸ç ÇöÀç À§Ä¡¿¡¼­ ÇÑ ¹®ÀÚ¸¦ Àаųª ¹®ÀÚ Çϳª¸¦ Ãâ·ÂÇÑ´Ù. ´ÙÀ½ µÎ ÇÔ¼ö´Â ºí·Ï ´ÜÀ§·Î ÀÔÃâ·ÂÇÑ´Ù.

 

size_t fread(void *buffer, size_t size, size_t count, FILE *stream);

size_t fwrite(const void *buffer, size_t size, size_t count, FILE *stream);

 

µÎ ÇÔ¼öÀÇ Àμö´Â µ¿ÀÏÇѵ¥ buffer¿¡ ÀúÀåµÈ sizeÅ©±âÀÇ ¸Þ¸ð¸® ºí·Ï count°³¸¦ ½ºÆ®¸²À¸·Î ÀÔÃâ·ÂÇÏ¸ç ½ÇÁ¦·Î ÀÔÃâ·ÂÇÑ ±æÀ̸¦ ¸®ÅÏÇÑ´Ù. ´ë°³ÀÇ °æ¿ì ÁöÁ¤ÇÑ Å©±â¸¸Å­ ÀÔÃâ·ÂÇÏÁö¸¸ ÆÄÀÏÀÇ ³¡ ºÎºÐÀ» Àаųª µð½ºÅ©°¡ °¡µæ áÀ» ¶§´Â ´õ ÀÛÀº Å©±â¸¸ ÀÔÃâ·ÂÇÒ ¼öµµ ÀÖ´Ù. ÀÌ µÎ ÇÔ¼ö¸¦ »ç¿ëÇÏ¸é ±¸Á¶Ã¼ÀÇ ¹è¿­À̳ª ÀÓÀÇ Å¸ÀÔÀÇ ÁýÇÕÀ» ÇѲ¨¹ø¿¡ ½ºÆ®¸²À¸·Î ÀÔÃâ·ÂÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ ¿¹Á¦´Â ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÆÄÀÏÀ» º¹»çÇϴµ¥ ¾Õ¿¡¼­ ¸¸µé¾ú´ø Test.txt ÆÄÀÏÀ» Àоî Test2.txt¶ó´Â ÆÄÀÏÀ» »õ·Î ¸¸µç´Ù.

 

¿¹ Á¦ : fread

#include <Turboc.h>

 

void main()

{

     FILE *src, *dest;

     char buf[256];

     size_t nRead;

 

     src=fopen("c:\\Test.txt","rb");

     if (src != NULL) {

          dest=fopen("c:\\Test2.txt","wb");

          if (dest != NULL) {

              while(!feof(src)) {

                   nRead=fread(buf,1,256,src);

                   fwrite(buf,1,nRead,dest);

              }

               fclose(dest);

          }

          fclose(src);

     }

}

 

src¿¡ º¹»çÇÒ ¿øº»À» Àб⠸ðµå(r)·Î ¿­°í dest´Â ¾²±â ¸ðµå(w)·Î ¿¬ ÈÄ srcÀÇ Ã³À½ºÎÅÍ 256¹ÙÀÌÆ®¾¿ Àоî dest·Î Ãâ·ÂÇϱ⸦ ÆÄÀÏÀÇ ³¡¿¡ À̸¦ ¶§±îÁö ¹Ýº¹ÇÏ¸é µÈ´Ù. ´Ü, ¿øº» ÆÄÀÏÀÇ ³¡ÀÏ ¶§´Â 256¹ÙÀÌÆ®¸¦ ´Ù ÀÐÁö ¸øÇÒ ¼öµµ ÀÖÀ¸¹Ç·Î fread°¡ ¸®ÅÏÇÏ´Â ½ÇÁ¦ ÀÐÀº ±æÀ̸¸Å­¸¸ Ãâ·ÂÇØ¾ß ÇÑ´Ù. Test.txt´Â ¾ÆÁÖ ÂªÀº ÆÄÀÏÀÌÁö¸¸ ÀÌ·± ½ÄÀ¸·Î fread·Î Àоî fwrite·Î Ãâ·ÂÇϸé Å« ÆÄÀϵµ ¾ó¸¶µçÁö º¹»çÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½Àº ¼­½ÄÈ­µÈ ½ºÆ®¸² ÀÔÃâ·Â ÇÔ¼öÀÌ´Ù.

 

int fscanf(FILE *stream, const char *format [,argument ]...);

int fprintf(FILE *stream, const char *format [,argument ]...);

 

»ç¿ëÇÏ´Â ¹æ¹ýÀº scanf, printf¿Í µ¿ÀÏÇ쵂 ´ë»óÀÌ È­¸éÀ̳ª Űº¸µå°¡ ¾Æ´Ï¶ó ÆÄÀÏÀ̶ó´Â Á¡¸¸ ´Ù¸£´Ù. ÀÌ µÎ ÇÔ¼ö¸¦ »ç¿ëÇϸé Á¤¼ö³ª ½Ç¼ö º¯¼ö¸¦ ½ºÆ®¸²À¸·Î ÀÔÃâ·ÂÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ ¿¹Á¦´Â ÆÄÀÏ·Î ¼­½ÄÈ­µÈ Ãâ·ÂÀ» º¸³½ ÈÄ ´Ù½Ã ÀоîµéÀδÙ.

 

¿¹ Á¦ : fprintf

#include <TurboC.h>

 

void main()

{

     char str[128]="String";

     int i=1234;

     double d=3.1416;

     FILE *f;

 

     f=fopen("c:\\Test.dat","wb");

     if (f != NULL) {

          fprintf(f,"%d %f %s",i,d,str);

          fclose(f);

     }

 

     i=0;

     d=0.0;

     f=fopen("c:\\Test.dat","rb");

     if (f!=NULL) {

          fscanf(f,"%d %lf %s",&i,&d,&str);

          printf("ÆÄÀÏ¿¡¼­ ÀÐÀº Á¤¼ö°ª=%d, ½Ç¼ö°ª=%f, ¹®ÀÚ¿­=%s\n",i,d,str);

          fclose(f);

     }

}

 

Á¤¼ö, ½Ç¼ö, ¹®ÀÚ¿­À» Test.dat ÆÄÀÏ·Î Ãâ·ÂÇÑ ÈÄ ´Ù½Ã ÀÐ¾î µé¿© Ãâ·ÂÇØ º¸¾Ò´Ù. ½ÇÇà °á°ú´Â ¸¶Ä¡ È­¸é¿¡ Á÷Á¢ º¯¼ö°ªÀ» Ãâ·ÂÇÑ °Í °°Áö¸¸ ÆÄÀÏ¿¡ ÀÖ´Â ³»¿ëÀÌ Ãâ·ÂµÈ °ÍÀÌ´Ù.

 

ÆÄÀÏ¿¡¼­ ÀÐÀº Á¤¼ö°ª=1234, ½Ç¼ö°ª=3.141600, ¹®ÀÚ¿­=String

 

C:\Test.dat ÆÄÀÏÀ» ¿­¾î º¸¸é ¼¼ º¯¼öÀÇ °ªÀÌ °ø¹éÀ¸·Î ±¸ºÐµÇ¾î ³ª¶õÈ÷ ÀúÀåµÇ¾î ÀÖ´Ù. fscanf´Â ÀÌ °ªµéÀ» °ø¹éÀ¸·Î ±¸ºÐÇÏ¿© ¼¼ º¯¼ö·Î ´Ù½Ã ÀоîµéÀδÙ. ÀÌ µÎ ÇÔ¼ö¸¦ »ç¿ëÇϸé È­¸éÀ¸·Î Ãâ·ÂÇÒ ¼ö ÀÖ´Â ¸ðµç °ªµéÀ» ÆÄÀϷεµ Ãâ·ÂÇÒ ¼ö ÀÖ°í Űº¸µå·Î ÀԷ¹ÞÀ» ¼ö ÀÖ´Â ¸ðµç °ªÀ» ÆÄÀÏ¿¡¼­ ÀԷ¹ÞÀ» ¼ö ÀÖ´Ù. È­¸éÀ̳ª Űº¸µåµµ ÆÄÀϰú °°Àº µ¿ÁúÀûÀÎ ½ºÆ®¸²À̹ǷΠÀ̰ÍÀÌ °¡´ÉÇÏ´Ù.