17-2-¹Ù.Á¤º¸ÀÇ ÀúÀå

Áö±Ý±îÁö ¹è¿î ÇÔ¼öµéÀ» »ç¿ëÇϸé ÆÄÀÏ¿¡ ¹®ÀÚ¿­, Á¤¼ö, ½Ç¼ö µîÀ» ¸ðµÎ ÀúÀåÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª Çö½ÇÀûÀ¸·Î ÀÌ·± ´Ü¼øÇÑ Å¸ÀÔÀÇ º¯¼öµé·Î ¾î¶² À¯¿ëÇÑ Á¤º¸¸¦ Ç¥ÇöÇϱ⿡´Â ºÎÁ·ÇÏ´Ù. Àû¾îµµ ±¸Á¶Ã¼ ¹è¿­ Á¤µµ´Â µÇ¾î¾ß ÆÄÀÏ·Î ÀúÀåÇÒ¸¸ÇÑ °¡Ä¡°¡ ÀÖ´Ù°í ÇÒ ¼ö Àִµ¥ ¿¹¸¦ µé¾î ¿öµå ÇÁ·Î¼¼¼­ÀÇ °æ¿ì ¹®´Ü Çϳª¸¦ ±¸Á¶Ã¼·Î Á¤ÀÇÇϸé ÀÌ ±¸Á¶Ã¼ÀÇ ¹è¿­ÀÌ °ð ¹®¼­°¡ µÉ °ÍÀÌ¸ç µµ¼­ ¸ñ·Ï °ü¸® ÇÁ·Î±×·¥Àº µµ¼­ Á¤º¸ ±¸Á¶Ã¼ÀÇ ¹è¿­À» ÀúÀåÇÒ °ÍÀÌ´Ù.

¹°·Ð ±¸Á¶Ã¼ ¹è¿­µµ Á¤º¸ÀÇ Ç¥Çö·ÂÀÌ ³ôÁö ¸øÇϹǷΠ½ÇÁ¦ ÇÁ·ÎÁ§Æ®¿¡¼­´Â À̺¸´Ù ÈξÀ ´õ º¹ÀâÇÑ ÀÚ·á ±¸Á¶°¡ µ¿¿øµÇ°ÚÁö¸¸ ´ëºÎºÐÀÇ °æ¿ì ±¸Á¶Ã¼ ¹è¿­ÀÇ º¯ÇüÀ̳ª Á¶ÇÕ Á¤µµÀÌ´Ù. ±×·¡¼­ ±¸Á¶Ã¼ ¹è¿­À» ÆÄÀÏ·Î ÀúÀåÇÒ ¼ö ÀÖ´Ù¸é À¢¸¸ÇÑ ÆÄÀÏ ±¸Á¶´Â ¼³°èÇÏ°í °ü¸®ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ´ÙÀ½ ¿¹Á¦´Â ÁÖ¼Ò·Ï ÇÁ·Î±×·¥À» ¿¹·Î µé¾î ÁÖ¼Ò·ÏÀ» Åë°·Î ÆÄÀÏ·Î ÀúÀåÇÑ´Ù.

ÆÄÀÏ ¼±µÎ¿¡ 256 Å©±âÀÇ Friends ¹è¿­ÀÌ ¼±¾ðµÇ¾î ÀÖÀ¸¸ç ÀÌ ¹è¿­ÀÌ ÆíÁý ´ë»óÀ̸鼭 ¶ÇÇÑ ÀúÀå ´ë»óÀ̱⵵ ÇÏ´Ù. ¹Ì¸® 4°³ÀÇ ÃʱⰪÀ» ³Ö¾î µÎ¾ú°í Àü¿ªº¯¼ö NumÀº ÀԷµǾî ÀÖ´Â »ç¶÷ÀÇ ¼ö¸¦ °¡Áø´Ù. ÀÌ ¹è¿­¿¡ Á¤º¸¸¦ »ðÀÔ, »èÁ¦, ¼öÁ¤ÇÏ´Â ÆíÁý ±â´ÉÀ» ÀÛ¼ºÇÑ´Ù¸é Friends ¹è¿­°ú Num Àü¿ªº¯¼ö¸¦ °ü¸®ÇÒ °ÍÀÌ¸ç °£´ÜÇÑ ÁÖ¼Ò·Ï ÇÁ·Î±×·¥ÀÇ ±â´ÉÀ» °®Ãâ ¼ö ÀÖÀ» °ÍÀÌ´Ù. Áö±Ý ¾Ë¾Æº¸°íÀÚ ÇÏ´Â ÁÖÁ¦´Â ±¸Á¶Ã¼ ¹è¿­À» ÆÄÀÏ·Î ÀúÀåÇÏ´Â °ÍÀ̹ǷΠÆíÁý ±â´ÉÀº ¹«½ÃÇÏ°í ÃʱⰪÀÌ ÆíÁýÁßÀÎ ÁÖ¼Ò·ÏÀ̶ó°í °¡Á¤Çϵµ·Ï ÇÏÀÚ.

 

¿¹ Á¦ : SaveRecord

#include <Turboc.h>

 

void WriteFriend();

void ReadFriend();

 

struct tag_Friend {

     char Name[10];

     int Age;

     double Height;

};

 

tag_Friend Friends[256]={

     {"À̱⿵", 30, 178.2 },

     {"±èÅ¿µ", 19, 169.8 },

     {"ÃÖ¼ø¿­", 26, 176.5 },

     {"³ë¹ÎÈ£", 58, 172.3 },

     {"", 0, 0 },

};

 

struct tag_Header {

     char desc[32];

     int ver;

     int num;

};

int Num=4;

 

void main()

{

     int sel,i;

 

     for (;;) {

          gotoxy(15,20);

          printf("¼±Åà (1:º¸±â, 2:ÀúÀå, 3:¸ù¶¥ »èÁ¦, 4:Àбâ, 9:Á¾·á ) ");

          sel=getch();

          clrscr();

 

          switch (sel) {

          case '1':

              for (i=0;i<Num;i++) {

                   gotoxy(2,2+i);

                   printf("À̸§:%s, ³ªÀÌ:%d, Å°:%.1f\n",

                        Friends[i].Name,Friends[i].Age,Friends[i].Height);

              }

              puts("\n  Ãâ·Â ¿Ï·á.");

              break;

          case '2':

              WriteFriend();

              break;

          case '3':

              memset(Friends,0,sizeof(Friends));

              Num=0;

              puts("\n\n  ¸ðµç ·¹Äڵ带 »èÁ¦Çß½À´Ï´Ù.");

              break;

          case '4':

              ReadFriend();

              break;

          case '9':

              exit(0);

          }

     }

}

 

// ±¸Á¶Ã¼ ¹è¿­À» ÆÄÀÏ·Î ÀúÀåÇϱâ

void WriteFriend()

{

     FILE *f;

     tag_Header H;

 

     gotoxy(5,5);

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

     if (f == NULL) {

          puts("ÆÄÀÏÀ» »ý¼ºÇÒ ¼ö ¾ø½À´Ï´Ù.");

     } else {

          strcpy(H.desc,"Ä£±¸¸ñ·Ï");

          H.ver=100;

          H.num=Num;

          fwrite(&H,sizeof(tag_Header),1,f);

          fwrite(Friends,sizeof(tag_Friend),Num,f);

          fclose(f);

          puts("ÆÄÀÏÀ» ÀúÀåÇß½À´Ï´Ù.");

     }

}

 

// ÆÄÀϷκÎÅÍ ±¸Á¶Ã¼ ¹è¿­ Àоî¿À±â

void ReadFriend()

{

     FILE *f=NULL;

     tag_Header H;

 

     gotoxy(5,5);

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

     if (f == NULL) {

          puts("ÆÄÀÏÀ» ¿­ ¼ö ¾ø½À´Ï´Ù.");

     } else {

          memset(Friends,0,sizeof(Friends));

          fread(&H,sizeof(tag_Header),1,f);

          if (strcmp(H.desc,"Ä£±¸¸ñ·Ï") != 0) {

              puts("ÁÖ¼Ò·Ï ÆÄÀÏÀÌ ¾Æ´Õ´Ï´Ù.");

              goto end;

          }

          if (H.ver != 100) {

              puts("¹öÀüÀÌ Æ²¸³´Ï´Ù.");

              goto end;

          }

          Num=H.num;

          fread(Friends,sizeof(tag_Friend),Num,f);

          puts("ÆÄÀÏÀ» Àоú½À´Ï´Ù.");

     }

 

end:

     if (f)

          fclose(f);

}

 

main ÇÔ¼ö¿¡´Â ¸Þ´º¸¦ Ãâ·ÂÇÏ°í ÁÖ¼Ò·ÏÀ» È­¸éÀ¸·Î Ãâ·ÂÇÏ´Â Á¤µµÀÇ ±â´É¹Û¿¡ ¾ø´Ù. ÀÌ ½Ç½ÀÀÇ ÁÖÁ¦ÀÎ ±¸Á¶Ã¼ ÀúÀå°ú Àбâ´Â WriteFriend, ReadFriend ÇÔ¼ö¿¡ µû·Î ÀÛ¼ºÇØ µÎ¾úÀ¸¹Ç·Î ÀÌ ÇÔ¼öµéÀ» ÁýÁßÀûÀ¸·Î ºÐ¼®ÇØ º¸µµ·Ï ÇÏÀÚ.

°íÀ¯ÀÇ µ¥ÀÌÅÍ ÆÄÀÏÀ» ¸¸µé·Á¸é ¸ÕÀú Çì´õ¸¦ ÀÛ¼ºÇØ¾ß ÇÑ´Ù. Çì´õ¶õ ÆÄÀÏÀÇ Á¾·ù¿Í ¹öÀü, °£´ÜÇÑ ¼³¸í, ±×¸®°í ÆÄÀÏÀÇ Àüü ±¸Á¶¸¦ ¼³¸íÇÏ´Â Áß¿äÇÑ Á¤º¸µéÀÌ ÀúÀåµÇ´Â ±¸Á¶Ã¼ÀÌ´Ù. ±¸Á¶Ã¼ ¹è¿­À» ÆÄÀÏ·Î ÀúÀåÇÏ·Á¸é ¹è¿­¿¡ ¸î °³ÀÇ ·¹Äڵ尡 ÀÖ´ÂÁö¸¦ ±â·ÏÇØ µÎ¾î¾ß Çϴµ¥ ÀÌ Á¤º¸°¡ Çì´õ¿¡ ÀÛ¼ºµÈ´Ù. ÁÖ¼Ò·Ï ÇÁ·Î±×·¥ÀÇ Çì´õ´Â tag_Header¶ó´Â ±¸Á¶Ã¼·Î ¼±¾ðµÇ¾î ÀÖÀ¸¸ç ¼³¸í, ¹öÀü, ÁÖ¼ÒÀÇ °³¼ö°¡ ÀúÀåµÈ´Ù.

WriteFriend ÇÔ¼ö´Â fopenÀ¸·Î ÀúÀåÇÒ ÆÄÀÏÀ» »ý¼ºÇÑ´Ù. ÀúÀåÇÒ ÆÄÀÏÀÇ À̸§À» µû·Î ÀԷ¹޾ƾ߰ÚÁö¸¸ ½Ç½ÀÀÇ °£ÆíÇÔÀ» À§ÇØ C:\Friend.dat·Î À̸§À» °íÁ¤ÇØ µÎ¾ú´Ù. ÆÄÀÏÀ» »ý¼ºÇÒ ¼ö ¾øÀ¸¸é ¿¡·¯ ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ°í ±×·¸Áö ¾Ê´Ù¸é ÆÄÀÏ¿¡ µ¥ÀÌÅ͸¦ Ãâ·ÂÇÑ´Ù. ¼³¸í°ú ¹öÀü, ±×¸®°í ·¹ÄÚµåÀÇ °³¼ö¸¦ Çì´õ¿¡ ÀÛ¼ºÇÑ ÈÄ ÆÄÀÏ·Î ¸ÕÀú Ãâ·ÂÇÑ´Ù. ±¸Á¶Ã¼¸¦ ÆÄÀÏ·Î Ãâ·ÂÇÒ ¶§´Â fwrite ÇÔ¼ö·Î ±¸Á¶Ã¼ ÀÚü¸¦ º¸³»±â¸¸ ÇÏ¸é µÈ´Ù. ÀÌ Á¤º¸°¡ ¸ÕÀú ±â·ÏµÇ¾î¾ß ÆÄÀϷκÎÅÍ µ¥ÀÌÅ͸¦ ÀÐÀ» ¶§ ±âº»ÀûÀÎ ¿¡·¯ 󸮸¦ ÇÏ°í ¸î °³ÀÇ ·¹Äڵ尡 µé¾î ÀÖ´ÂÁö¸¦ È®ÀÎÇÒ ¼ö ÀÖ´Ù.

±×¸®°í Friends ¹è¿­À» Åë°·Î ÆÄÀÏ·Î ÀúÀåÇ쵂 Àüü¸¦ ÀúÀåÇÒ ÇÊ¿ä¾øÀÌ ÆíÁýÁßÀÎ À¯È¿ÇÑ °³¼ö¸¸Å­¸¸ Ãâ·ÂÇÏ¸é µÇ´Âµ¥ ÀÌ °³¼ö´Â Àü¿ªº¯¼ö NumÀÌ °¡Áö°í ÀÖ´Ù. ÀúÀåÀÌ ¿Ï·áµÇ¸é fclose ÇÔ¼ö·Î ÆÄÀÏÀ» ´Ý´Â´Ù. c:\Friends.dat ÆÄÀÏÀ» 16Áø ÆíÁý±â·Î ¿­¾î º¸¸é Çì´õ ¹®ÀÚ¿­°ú Name ¹®ÀÚ¿­ÀÌ º¸ÀÏ °ÍÀ̸ç Á¤¼ö³ª ½Ç¼öµµ ÀÐÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù. ±¸Á¶Ã¼ ¹è¿­ÀÌ ÆÄÀÏ¿¡ ÀúÀåµÈ ¸ð½ÀÀº ´ÙÀ½°ú °°´Ù. Çì´õ ´ÙÀ½¿¡ ±¸Á¶Ã¼ ¹è¿­ÀÌ ¼ø¼­´ë·Î ±â·ÏµÇ¾î ÀÖ´Ù.

ÀúÀåµÈ ÆÄÀϷκÎÅÍ ±¸Á¶Ã¼ ¹è¿­À» ÀоîµéÀÏ ¶§´Â ÀúÀåÇÑ ¼ø¼­´ë·Î ÀÐ¾î µéÀÌ¸é µÈ´Ù. Çì´õ¸¦ ¸ÕÀú Àаí ÁÖ¼Ò·Ï ÆÄÀÏÀÌ ¸Â´ÂÁö¿Í ¹öÀüÀ» È®ÀÎÇÑ´Ù. ¸¸¾à ¾û¶×ÇÑ ÆÄÀÏÀ̰ųª ¹öÀüÀÌ Æ²¸®¸é ¿¡·¯ ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ°í Á¾·áÇÑ´Ù. ÇÁ·Î±×·¥À̶õ Áö¼ÓÀûÀ¸·Î ¾÷±×·¹À̵åµÇ±â ¶§¹®¿¡ ÀÌÀü ¹öÀüÀ̳ª ÀÌÈÄ ¹öÀüÀÌ ¸¸µç µ¥ÀÌÅÍ ÆÄÀÏ¿¡ ´ëÇÑ Ã³¸®µµ ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ÀÌÀü ¹öÀüÀÎ °æ¿ì ÇöÀç ¹öÀü¿¡ ¸Â°Ô º¯È¯À» ÇϵçÁö ¾Æ´Ï¸é ÃÖ¼ÒÇÑ ÀÐÀ» ¼ö ¾ø´Ù´Â ¿¡·¯ ¸Þ½ÃÁö¶óµµ º¸¿©ÁÖ´Â °ÍÀÌ ¿Ç´Ù. ¸ðµç Á¶°ÇÀÌ ¸ÂÀ» °æ¿ì Çì´õ µÚÂÊ¿¡ ÀÖ´Â ±¸Á¶Ã¼ ¹è¿­À» Åë°·Î Àоî Friends ¹è¿­¿¡ Áý¾î ³Ö°í Àü¿ªº¯¼ö Num¿¡ Çì´õ¿¡ ±â·ÏµÈ ·¹ÄÚµå °³¼ö¸¦ ±â·ÏÇÏ¸é µÈ´Ù.

ÀÌ ¿¹Á¦ÀÇ °æ¿ì ÆíÁý ´ë»ó Á¤º¸°¡ ÇϳªÀÇ ±¸Á¶Ã¼ ¹è¿­¿¡ ÁýÇÕÀûÀ¸·Î ¸ð¿© Àֱ⠶§¹®¿¡ ÆÄÀÏ·Î ÀúÀåÇϱ⵵ ±×¸® ¾î·ÆÁö ¾ÊÀº ÆíÀÌ´Ù. ½ÇÀü ÇÁ·ÎÁ§Æ®ÀÇ ÀڷᱸÁ¶´Â »ç½Ç ÀÌ º¸´Ù´Â ÈξÀ ´õ º¹ÀâÇѵ¥ ´ÙÀ½Àº Á» ´õ º¹ÀâÇÑ ÇüÅÂÀÇ Á¤º¸¸¦ ÀúÀåÇØ º¸ÀÚ. ±¸Á¶Ã¼°¡ ¸ðµç Á¤º¸¸¦ ´Ù °¡Áö°í ÀÖÁö ¾Ê°í µ¿ÀûÇÒ´çµÈ ¸Þ¸ð¸®ÀÇ Æ÷ÀÎÅ͸¦ °¡Áö°í ÀÖ´Â °æ¿ìÀÌ´Ù. º¯°æµÈ ¼Ò½º¸¦ º¸ÀÚ.

 

¿¹ Á¦ : SaveRecord2

#include <Turboc.h>

 

void WriteFriend();

void ReadFriend();

void DeleteAll();

 

struct tag_Friend {

     char *Name;

     int Age;

     double Height;

};

 

tag_Friend Friends[256]={

     {NULL, 30, 178.2 },

     {NULL, 19, 169.8 },

     {NULL, 26, 176.5 },

     {NULL, 58, 172.3 },

     {NULL, 0, 0 },

};

 

struct tag_Header {

     char desc[32];

     int ver;

     int num;

};

int Num=4;

 

void main()

{

     int sel,i;

 

     // ½ÇÇàÁß¿¡ »ç¿ëÀڷκÎÅÍ ÀÔ·Â¹Þ¾Ò´Ù°í °¡Á¤ÇÑ´Ù.

     Friends[0].Name=(char *)malloc(7);

     strcpy(Friends[0].Name,"±èÁ¾Çõ");

     Friends[1].Name=(char *)malloc(7);

     strcpy(Friends[1].Name,"½Åµ¿¹Ð");

     Friends[2].Name=(char *)malloc(7);

     strcpy(Friends[2].Name,"À̱⿵");

     Friends[3].Name=(char *)malloc(7);

     strcpy(Friends[3].Name,"±èÅ¿µ");

 

     for (;;) {

          gotoxy(15,20);

          printf("¼±Åà (1:º¸±â, 2:ÀúÀå, 3:¸ù¶¥ »èÁ¦, 4:Àбâ, 9:Á¾·á ) ");

          sel=getch();

          clrscr();

 

          switch (sel) {

          case '1':

              for (i=0;i<Num;i++) {

                   gotoxy(2,2+i);

                   printf("À̸§:%s, ³ªÀÌ:%d, Å°:%.1f\n",

                        Friends[i].Name,Friends[i].Age,Friends[i].Height);

              }

              puts("\n  Ãâ·Â ¿Ï·á.");

              break;

          case '2':

              WriteFriend();

              break;

          case '3':

              DeleteAll();

              puts("\n\n  ¸ðµç ·¹Äڵ带 »èÁ¦Çß½À´Ï´Ù.");

              break;

          case '4':

              ReadFriend();

              break;

          case '9':

              exit(0);

          }

     }

     DeleteAll();

}

 

// »ç¿ëÁßÀÎ ¸ðµç ¸Þ¸ð¸®¸¦ ÇØÁ¦ÇÑ´Ù.

void DeleteAll()

{

     int i;

 

     for (i=0;i<Num;i++) {

          if (Friends[i].Name == NULL) {

              break;

          }

          free(Friends[i].Name);

     }

     memset(Friends,0,sizeof(Friends));

     Num=0;

}

 

// ±¸Á¶Ã¼ ¹è¿­À» ÆÄÀÏ·Î ÀúÀåÇϱâ

void WriteFriend()

{

     FILE *f;

     tag_Header H;

     int i,len;

 

     gotoxy(5,5);

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

     if (f == NULL) {

          puts("ÆÄÀÏÀ» »ý¼ºÇÒ ¼ö ¾ø½À´Ï´Ù.");

     } else {

          strcpy(H.desc,"Ä£±¸¸ñ·Ï");

          H.ver=110;

          H.num=Num;

          fwrite(&H,sizeof(tag_Header),1,f);

          // NameÀÇ ±æÀÌ, Name, Age, Height

          for (i=0;i<Num;i++) {

              len=strlen(Friends[i].Name);

              fwrite(&len,sizeof(int),1,f);

              fwrite(Friends[i].Name,len,1,f);

              fwrite(&Friends[i].Age,sizeof(int),1,f);

              fwrite(&Friends[i].Height,sizeof(double),1,f);

          }

          fclose(f);

          puts("ÆÄÀÏÀ» ÀúÀåÇß½À´Ï´Ù.");

     }

}

 

// ÆÄÀϷκÎÅÍ ±¸Á¶Ã¼ ¹è¿­ Àоî¿À±â

void ReadFriend()

{

     FILE *f=NULL;

     tag_Header H;

     int i,len;

 

     gotoxy(5,5);

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

     if (f == NULL) {

          puts("ÆÄÀÏÀ» ¿­ ¼ö ¾ø½À´Ï´Ù.");

     } else {

          // ÀÏ´Ü »ç¿ëÁßÀÎ µ¥ÀÌÅ͸¦ ¸ÕÀú Áö¿î´Ù.

          DeleteAll();

          fread(&H,sizeof(tag_Header),1,f);

          if (strcmp(H.desc,"Ä£±¸¸ñ·Ï") != 0) {

              puts("ÁÖ¼Ò·Ï ÆÄÀÏÀÌ ¾Æ´Õ´Ï´Ù.");

              goto end;

          }

          if (H.ver != 110) {

              puts("¹öÀüÀÌ Æ²¸³´Ï´Ù.");

              goto end;

          }

          Num=H.num;

          for (i=0;i<Num;i++) {

              fread(&len,sizeof(int),1,f);

              Friends[i].Name=(char *)calloc(len+1,1);

              fread(Friends[i].Name,len,1,f);

              fread(&Friends[i].Age,sizeof(int),1,f);

              fread(&Friends[i].Height,sizeof(double),1,f);

          }

          puts("ÆÄÀÏÀ» Àоú½À´Ï´Ù.");

     }

 

end:

     if (f)

          fclose(f);

}

 

tag_Friend ±¸Á¶Ã¼ÀÇ Name ¸â¹ö°¡ Á¤ÀûÀÎ ¹è¿­ÀÌ ¾Æ´Ï¶ó °¡º¯ÀûÀÎ ±æÀ̸¦ °¡Áú ¼ö ÀÖ´Â µ¿Àû ¹è¿­ÀÇ Æ÷ÀÎÅÍ·Î º¯°æµÇ¾ú´Ù. ÀÌ·¸°Ô µÇ¸é ¾ó¸¶µçÁö ±ä À̸§À» ÀúÀåÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÆíÁý ÄÚµåµéÀº ½ÇÁ¦ ÀÔ·ÂµÈ ¹®ÀÚ¿­ÀÇ ±æÀ̸¸Å­ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ°í Name¿¡ ±× Æ÷ÀÎÅ͸¦ ÀúÀåÇÒ °ÍÀÌ´Ù. ÀÌ ¿¹Á¦´Â ÆíÁý Äڵ尡 ÀÛ¼ºµÇ¾î ÀÖÁö ¾ÊÀ¸¹Ç·Î mainÀÇ ¼±µÎ¿¡¼­ NameÀ» ÇÒ´çÇÏ¿© °ªÀ» º¹»çÇØ µÎ¾ú´Âµ¥ »ç¿ëÀÚ°¡ Á÷Á¢ ÀÔ·ÂÇÑ Á¤º¸¶ó°í °¡Á¤Çϵµ·Ï ÇÏÀÚ.

ÀÚ·á ±¸Á¶°¡ º¯°æµÇ¾úÀ¸¹Ç·Î ÀÌ ÀڷḦ °ü¸®ÇÏ´Â Äڵ嵵 º¯°æµÈ´Ù. ¸ðµç ·¹Äڵ带 »èÁ¦ÇÒ ¶§´Â Friends ¹è¿­¸¸ 0À¸·Î ¸¸µé¾î¼­´Â ¾ÈµÇ¸ç µ¿ÀûÀ¸·Î ÇÒ´çµÈ ¸Þ¸ð¸®µµ ȸ¼öÇØ¾ß ÇÑ´Ù. DeleteAllÀ̶ó´Â º°µµÀÇ ÇÔ¼ö¸¦ ¸¸µé°í ÀÌ ÇÔ¼ö¿¡¼­ Friends ¹è¿­À» Á¤¸®Çϵµ·Ï Çß´Ù. ÇÁ·Î±×·¥À» Á¾·áÇÒ ¶§µµ ÀÌ ÇÔ¼ö¸¦ È£ÃâÇØ¾ß ÇÑ´Ù.

½ÇÇàÁß¿¡ Friends ¹è¿­Àº ´ÙÀ½°ú °°Àº ¸ð¾çÀ» °¡Áö°Ô µÉ °ÍÀÌ´Ù. NameÀº µ¿ÀûÀ¸·Î ÇÒ´çµÈ À̸§ ¹®ÀÚ¿­ÀÇ ¹øÁö¸¦ °¡¸®Å°°í ÀÖÀ¸¸ç ÀÌ ¹®ÀÚ¿­ÀÇ ±æÀÌ´Â °¡º¯ÀûÀÌ´Ù. µ¿ÀûÀ¸·Î ÇÒ´çµÇ´Â ¸Þ¸ð¸®´Â ±¸Á¶Ã¼¿¡ Æ÷ÇԵǾî ÀÖÁö ¾ÊÀ¸¸ç ¾îµð¿¡ ÇÒ´çµÉÁö ¾Ë ¼ö ¾ø´Ù. ±×·¯³ª Name Æ÷ÀÎÅ͸¦ ÅëÇؼ­ ¾ðÁ¦µçÁö ÂüÁ¶ÇÒ ¼ö ÀÖÀ¸¹Ç·Î ³í¸®ÀûÀ¸·Î ±¸Á¶Ã¼ÀÇ ÀϺζó°í º¼ ¼ö ÀÖ´Ù.

NameÀÌ °¡Áö°í ÀÖ´Â ¹øÁö¸¦ ÆÄÀÏ¿¡ ÀúÀåÇÏ´Â °ÍÀº ¾Æ¹« Àǹ̰¡ ¾ø´Ù´Â °ÍÂëÀº ½±°Ô ÁüÀÛÀÌ µÉ °ÍÀÌ´Ù. Æ÷ÀÎÅÍ´Â ¸Þ¸ð¸®¿¡ ÀÖÀ» ¶§³ª Àǹ̰¡ ÀÖ´Â °ÍÀÌÁö ÆÄÀÏ¿¡ ÀúÀåÇÒ ¶§´Â ¾Æ¹« Àǹ̰¡ ¾ø´Ù. ±×·¡¼­ Æ÷ÀÎÅ͸¦ ÀúÀåÇؼ­´Â ¾ÈµÇ¸ç ÀÌ Æ÷ÀÎÅÍ°¡ °¡¸®Å°´Â ¹øÁö¸¦ ã¾Æ°¡ ½ÇÁ¦ À̸§ ¹®ÀÚ¿­À» ¾ò¾î ÆÄÀÏ¿¡ ÀúÀåÇØ¾ß ÇÑ´Ù. ¶Ç ´Ù¸¥ ¹®Á¦Á¡Àº ¹®ÀÚ¿­ÀÇ ±æÀÌ°¡ °¡º¯ÀûÀ̱⠶§¹®¿¡ °íÁ¤µÈ ±æÀÌ·Î ·¹Äڵ带 ÀúÀåÇÒ ¼ö ¾ø´Ù´Â Á¡ÀÌ´Ù.

Æ÷ÀÎÅ͸¦ Æ÷ÇÔÇÏ´Â ±¸Á¶Ã¼ ¹è¿­À» ÀúÀåÇÏ´Â WriteFriend ÇÔ¼ö¸¦ º¸ÀÚ. Çì´õ¸¦ ÀúÀåÇÏ´Â ºÎºÐ±îÁö´Â ÀÌÀü ¿¹Á¦¿Í ¿ÏÀüÈ÷ µ¿ÀÏÇÏ´Ù. ´Ü Çì´õÀÇ ¹öÀü ¹øÈ£°¡ Ʋ¸°µ¥ ÀÚ·á ±¸Á¶°¡ ¹Ù²î¾úÀ¸¹Ç·Î ÆÄÀÏÀÇ ¹öÀüµµ °°ÀÌ ¹Ù²ã¾ß ¾ÈÀüÇÏ´Ù. ·¹Äڵ尡 °¡º¯ ±æÀ̸¦ °¡Áö±â ¶§¹®¿¡ Name ¸â¹öÀÇ ±æÀ̸¦ ¸ÕÀú ÀúÀåÇÏ°í ³ª¸ÓÁö ¸â¹ö¸¦ ¼ø¼­´ë·Î ÀúÀåÇØ¾ß ÇÑ´Ù. ±×·¡¾ß ÀÐÀ» ¶§ Name ¸â¹ö¸¦ À§ÇØ ¾ó¸¶¸¸Å­ÀÇ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÒÁö, NameÀÇ ±æÀÌ´Â ¾ó¸¶¸¸Å­ÀÎÁö¸¦ ¾Ë ¼ö ÀÖ´Ù. Name ¸â¹öÀÇ ±æÀ̸¦ Á¤È®ÇÏ°Ô ÁöÁ¤Çؼ­ ÀúÀåÇϹǷΠNULL Á¾·á ¹®ÀÚ´Â ±»ÀÌ ÀúÀåÇÒ ÇÊ¿ä°¡ ¾ø´Ù. ±¸Á¶Ã¼ ¹è¿­ÀÌ ÆÄÀÏ¿¡ ÀúÀåµÈ ¸ð¾çÀº ´ÙÀ½°ú °°À» °ÍÀÌ´Ù.

´ÙÀ½Àº ÆÄÀÏ¿¡ ÀúÀåµÈ ±¸Á¶Ã¼ ¹è¿­À» ÀоîµéÀÌ´Â Äڵ带 º¸ÀÚ. ¸ÕÀú ÆíÁýÁßÀÎ µ¥ÀÌÅ͸¦ Áö¿ö¾ß ÇϹǷΠDeleteAll ÇÔ¼ö¸¦ È£ÃâÇÏ¿© Friends ¹è¿­À» ±ò²ûÇÏ°Ô Áö¿î´Ù. ¹°·Ð Á¤»óÀûÀÎ ÇÁ·Î±×·¥À̶ó¸é ÀÌ ÇÔ¼ö¸¦ È£ÃâÇϱâ Àü¿¡ ¹ÌÀúÀå ¹®¼­¿¡ ´ëÇÑ È®ÀÎÀ» ¸ÕÀú ÇÒ °ÍÀÌ´Ù. Çì´õ¸¦ ÀоîµéÀÌ°í ÆÄÀÏÀ» È®ÀÎÇÏ°í ¹öÀüÀ» °Ë»çÇÏ´Â ¹æ¹ýÀº ÀÌÀü ¿¹Á¦¿Í µ¿ÀÏÇÏ´Ù. ¹öÀüÀÌ 110À¸·Î ¾÷±×·¹À̵åµÇ¾úÀ¸¹Ç·Î 110 ¹öÀüÀÇ µ¥ÀÌÅÍ ÆÄÀϸ¸ ÀоîµéÀÏ ¼ö ÀÖ´Ù. ¹°·Ð Á» ´õ Äڵ带 ÀÛ¼ºÇϸé ÇÏÀ§ ¹öÀüÀ» ÄÁ¹öÆÃÇؼ­ Àеµ·Ï ÇÒ ¼öµµ ÀÖ´Ù.

·¹Äڵ带 ÀоîµéÀÏ ¶§´Â lenÀ» ¸ÕÀú ÀÐ°í ³Î ¹®ÀÚ¸¦ °í·ÁÇÏ¿© len+1 ±æÀ̸¸Å­ NameÀ» µ¿ÀûÀ¸·Î ÇÒ´çÇ쵂 ÃʱâÈ­°¡ µÇ´Â callocÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. ÆÄÀÏ¿¡ ÀúÀåÇÒ ¶§ NULL Á¾·á ¹®ÀÚ¸¦ Æ÷ÇÔ½ÃÅ°Áö ¾Ê¾Ò±â ¶§¹®¿¡ ÀоîµéÀÏ ¶§ NULL Á¾·á ¹®ÀÚ¿­À» Á÷Á¢ ¸¸µé¾î ÁÖ´Â °ÍÀÌ´Ù. ¹öÆÛ°¡ ÇÒ´çµÇ¸é Name¿¡ len ±æÀ̸¸Å­ ÀоîµéÀÌ°í À̾ Age¿Í Height¸¦ ÀоîµéÀδÙ. ÀÌ °úÁ¤À» Çì´õ¿¡ ÀúÀåµÇ¾î ÀÖ´Â ·¹ÄÚµå °³¼ö¸¸Å­ ¹Ýº¹ÇÏ¿´´Ù. ÀúÀåÇÒ ¶§¿Í ¶È°°Àº ¼ø¼­´ë·Î Á¤È®ÇÑ ±æÀ̸¦ Á¶»çÇؼ­ ÀÐÀ¸¹Ç·Î Ʋ¸± ¼ö°¡ ¾ø´Ù.

µÎ °¡Áö ÀüÇüÀûÀÎ °æ¿ì¿¡ ´ëÇØ ¾Ë¾Æ ºÃ´Âµ¥ ½ÇÁ¦ ÇÁ·Î±×·¥ÀÇ ÀÚ·á ±¸Á¶´Â Àû¾îµµ ÀÌ ¿¹Á¦µéº¸´Ù´Â º¹ÀâÇÏ´Ù. ±¸Á¶Ã¼ ¹è¿­ÀÌ ÁÖ ÀúÀå´ë»óÀÎ °æ¿ì°¡ ¾ÐµµÀûÀ¸·Î ¸¹±â´Â ÇÏÁö¸¸ °³º° ±¸Á¶Ã¼°¡ ÈξÀ ´õ ¸¹Àº Á¤º¸¸¦ Æ÷ÇÔÇÒ °ÍÀÌ´Ù. ±¸Á¶Ã¼ ¾È¿¡ ¶Ç ´Ù¸¥ ±¸Á¶Ã¼ÀÇ ¹è¿­ÀÌ ÀÖÀ» ¼ö ÀÖ°í ¶Ç ±× ±¸Á¶Ã¼ ¾È¿¡´Â µ¿ÀûÀ¸·Î ÇÒ´çµÈ Æ÷ÀÎÅÍ°¡ ¼­³Ê°³¾¿ Á¸ÀçÇϱ⵵ ÇÑ´Ù. ÀÌ·± º¹ÀâÇÑ °æ¿ì¶óµµ ¿øÄ¢´ë·Î¸¸ ÆÄÀÏ ÀÔÃâ·ÂÀ» ÇÏ¸é µÈ´Ù.

ÀúÀåÇÒ ¶§´Â ¸ðµç Á¤º¸¸¦ ´Ù Æ÷ÇÔ½ÃÅ°°í ´Ù½Ã ÀÐÀ» ¶§ ¿ø·¡ µ¥ÀÌÅ͸¦ ãÀ» ¼ö ÀÖµµ·Ï¸¸ ÇÏ¸é µÉ °ÍÀÌ´Ù. ¸Þ¸ð¸®´Â ÀÔüÀûÀε¥ ºñÇØ ÆÄÀÏÀº ¼±ÇüÀûÀ̹ǷΠ¸Þ¸ð¸®ÀÇ ¿©±âÀú±â¿¡ Èð¾îÁ® ÀÖ´Â Á¤º¸µéÀ» ¸ð¾Æ¼­ ¼øÂ÷ÀûÀ¸·Î ÆÄÀÏ·Î ÀúÀåÇÏ°í Àоî¿Ã ¶§´Â ´Ù½Ã ÀÔüÀûÀ¸·Î ¸Þ¸ð¸®¿¡ Àü°³ÇÑ´Ù. ÀúÀåÇÒ ´ë»óÀÌ °¡º¯ ±æÀÌÀÏ °æ¿ì ±æÀ̸¦ ¹Ýµå½Ã ¸ÕÀú ÀúÀåÇØ¾ß ÇÑ´Ù.