¸®´ª½º ½Ã½ºÅÛ ÇÁ·Î±×·¡¹Ö : Ç¥ÁØ ÀÔÃâ·Â ´Ù·ç±â 3
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

Docbook ¿ø¹®

stdio.h »ç¿ëÇϱâ (3)

1절. ¼Ò°³

À̹ø ±â»ç´Â stdio.h »ç¿ëÇϱâ¿Í stdio.h »ç¿ëÇϱâ (2) ¿¡ ÀÌÀº stdio.h »ç¿ë¿¡ °üÇÑ ¸¶Áö¸· À¸·Î, Çü½ÄÈ­µÈ ÀÔÃâ·Â¿¡ ´ëÇØ¼­ ´Ù·ç°í ÀÖ´Ù. À̹ø ±â»ç´Â ´Ù¸¥ ¿©·¯ ±â»ç¿Í ¸¶Âù°¡Áö·Î c ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ ±âÃÊÀûÀÎ ÀÌÇØ¸¦ Çϰí ÀÖÀ»°ÍÀ̶ó´Â °¡Á¤ÇÏ¿¡ ¸¸µé¾îÁ³´Ù.

Çü½ÄÈ­µÈ ÀÔÃâ·ÂÀº Formatted Input(Çü½ÄÈ­µÈ ÀÔ·Â) °ú Formatted Output (Çü½ÄÈ­µÈ Ãâ·Â)À¸·Î ³ª´¶´Ù. Çü½ÄÈ­µÈ ÀÔÃâ·ÂÀ» ÇÊ¿ä·Î ÇÏ´Â °÷Àº ÆÄÀÏÀ» ÅëÇØ¼­ ÀоîµéÀÎ µ¥ÀÌŸ³ª Ç¥ÁØÀÔ·ÂÀåÄ¡ ¸¦ ÅëÇØ¼­ ¹Þ¾Æµé¿©Áø µ¥ÀÌŸ¸¦ »ç¿ëÀÚ°¡ º¸±â ÁÁÀº ÇüÅ·Πº¸¿©ÁÖ±â À§Çؼ­ ÁÖ·Î »ç¿ëµÈ´Ù. ¿¹¸¦ µé¾î

12345
657
845
1
		
ÀÌ·¸°Ô È­¸é¿¡ Ãâ·ÂµÇ´Â °Íº¸´Ù´Â
   12345
     657
     845
       1
		
ÀÌ·±½ÄÀ¸·Î ¿À¸¥ÂÊ Á¤·ÄÀ» ½ÃÄÑÁà¾ßÇÒ Çʿ䰡 Àִ°æ¿ìµµ ÀÖÀ»°ÍÀÌ´Ù. ȤÀº ½Ã°£À» ³ªÅ¸³¾Àû¿¡ "³â/¿ù/½Ã/ºÐ" ÀÌ·± ½ÄÀ¸·Î ³ªÅ¸³»°í ½ÍÀ» ¶§µµ ÀÖÀ»°ÍÀÌ´Ù. ¶Ç´Â stdin À¸·Î ÀÔ·ÂÀ» ¹Þ°Å³ª, ÆÄÀϵ¼­ ÀÔ·ÂÀ» ¹ÞÀ»¶§, µ¥ÀÌŸ°¡ "1234:yundream:011-524-3128" ÀÌ·±½ÄÀ¸·Î ÀԷµǾú´Ù¸é, À̰ÍÀ» ":" À» ±âÁØÀ¸·Î ÇØ¼­ Æ÷¸Ë¿¡ ±¸¾Ö¹ÞÁö ¾Ê°í ÀÔ·Â¹Þ°í ½ÍÀ»¶§µµ ÀÖÀ»°ÍÀÌ´Ù. 1234 ´Â int ÇüÀ¸·Î yundream Àº char ÇüÀ¸·Î.. ÀÌ·¯ÇÑ ÀÛ¾÷À» ½±°Ô Çϱâ À§ÇÑ ¸ñÀûÀ¸·Î Çü½ÄÈ­µÈ ÀÔÃâ·Â ÇÔ¼öµéÀ» »ç¿ëÇÒ¼ö ÀÖ´Ù. ¹°·Ð ÀÌ·¯ÇÑ ÀÛ¾÷À» token À» ±â¹ÝÀ¸·ÎÇÑ Æ÷ÀÎÅÍ ³ë°¡´Ù¸¦ ÇØµµ °¡´ÉÇϰÚÁö¸¸, stdio.h ¿¡¼­ Á¦°øÇÏ´Â ÇÔ¼öµéÀ» ÀÌ¿ëÇϸé ÈξÀ ºü¸£°í, ÆíÇÏ°Ô ÀÌ·¯ÇÑ ÀϵéÀ» ÇÒ¼ö ÀÖ´Ù.


2절. Çü½ÄÈ­µÈ Ãâ·Â

»ç¿ëÀÚ°¡ ¿øÇÏ´Â Çü½ÄÀ¸·Î °ªÀ» Ãâ·Â½ÃÄÑÁÖ±â À§Çؼ­ »ç¿ëµÈ´Ù. ´ÙÀ½°ú °°Àº printf °è¿­ÀÇ ÇÔ¼öµéÀ» ÀÌ¿ëÇÑ´Ù.

#include <stdio.h>

int printf(const char *format, ...);
int fprintf(FILE *stream, const char *format, ...);
int sprintf(char *str, const char *format, ...);
int snprintf(char *str, size_t size, const  char  *format, ...);
		
const char *format ´Â µÚ¿¡ ÁÖ¾îÁø ¾Æ±Ô¸ÕÆ®µéÀ» ÀÌ¿ëÇØ¼­ Çü½ÄÈ­µÈ Ãâ·ÂÀ» ½ÃÄÑÁØ´Ù. printf °¡ stdout(Ç¥ÁØÃâ·Â)À¸·Î Çü½ÄÈ­µÈ Ãâ·ÂÀ» ½ÃŰ´Â ¹Ý¸é, fprintf ´Â ÇØ´ç FILE °´Ã¼·Î Çü½ÄÈ­µÈ Ãâ·ÂÀ» ÇÑ´Ù. ±×·¯¹Ç·Î printf(...) ´Â fprintf(stdout,...) ¿Í µ¿ÀÏÇÑ ÀÏÀ» ¼öÇàÇÑ´Ù. sprintf ¿Í snprintf ´Â char *str ·Î Çü½ÄÈ­µÈ Ãâ·ÂÀ» º¹»çÇÑ´Ù.

printf °è¿­ÀÇ ÇÔ¼ö´Â Çü½ÄÈ­µÈ ÀÔÃâ·ÂÀ» Áö¿øÇϱâ À§ÇØ, ÀԷµǴ º¯¼öÀÇ type ¿¡ ´ëÀÀµÇ´Â ´Ù¾çÇÑ Æ÷¸Ë¹®ÀÚ µéÀ» Áö¿øÇÑ´Ù. ÀÌ·¯ÇÑ Æ÷¸Ë¹®ÀÚ´Â '%' ·Î ½ÃÀ۵Ǹç, °¢ ¾Æ±Ô¸ÕÆ®¿Í ¼ø¼­´ë·Î ´ëÀÀµÈ´Ù.

int  day=5;
char *mday="È­";

printf("¿À´ÃÀº %dÀÏ %s¿äÀÏ ÀÔ´Ï´Ù", day, mday);
		
À§ÀÇ ¿¹¸¦ º¸¸é day ¿Í mday ´Â °¢°¢ %d ¿Í %s ·Î Ãâ·ÂµÊÀ» ¾Ë¼ö ÀÖ´Ù. %d ´Â int ÇüÀÇ ¼ýÀÚ¸¦ ¹Þ¾ÆµéÀ̱â À§Çؼ­ %s ´Â ¹®ÀÚ¿­À» ¹Þ¾ÆµéÀ̱â À§Çؼ­ »ç¿ëµÈ´Ù.

fprintf ´Â Ãâ·ÂÀ» stdout(Ç¥ÁØÃâ·Â-È­¸é)À¸·Î¸¸ °¡´ÉÇÑ printf ¿Í´Â ´Þ¸® ¾Æ±Ô¸ÕÆ®·Î ÁÖ¾îÁö´Â FILE °´Ã¼·Î Ãâ·Â½Ãų¼ö ÀÖ´Ù.

int  day=5;
char *mday="È­";

fprintf(stderr,"¿À´ÃÀº %dÀÏ %s¿äÀÏ ÀÔ´Ï´Ù", day, mday);
		
À§ÀÇ ¿¹´Â printf ¹öÁ¯°ú µ¿ÀÏÇÏÁö¸¸, Ãâ·ÂÀ» Ç¥ÁØ¿¡·¯·Î º¸³»°í ÀÖÀ½À» ¾Ë¼ö ÀÖ´Ù.

sprintf ¿Í snprintf ´Â Ç¥ÁØÈ­µÈ Ãâ·ÂÀÇ ³»¿ëÀ» ´Ù¸¥ string º¯¼ö·Î º¹»çÇϱâ À§Çؼ­ »ç¿ëÇÑ´Ù.

int  day=5;
char *mday="È­";
char today[255];

memset(today, 0x00, 255);
fprintf(today,"¿À´ÃÀº %dÀÏ %s¿äÀÏ ÀÔ´Ï´Ù", day, mday);
		
fprintf ¿Í ¸Å¿ì ºñ½ÁÇÏ°Ô »ç¿ëÇÔÀ» ¾Ë¼ö ÀÖ´Ù. fprintf ¿Í ´Þ¸® Ç¥ÁØÈ­µÈ Ãâ·ÂÀÇ ³»¿ëÀ» today ¹®Àڹ迭 º¯¼ö·Î º¸³»°í ÀÖÀ½À» ¾Ë¼ö ÀÖ´Ù. sprintf ¿Í snprintf ÀÇ Â÷ÀÌÁ¡Àº snprintf °¡ º¹»çµÉ ¹®ÀÚ¿­ÀÇ Å©±â¸¦ ÁöÁ¤ÇÒ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù.


3절. Çü½ÄÈ­µÈ ÀÔ·Â

¿ì¸®´Â ÀÔ·ÂÀåÄ¡³ª ȤÀº ÆÄÀÏ·Î ºÎÅÍ, ¹®ÀÚ³ª ¼ýÀÚ¸¦ ÀԷ¹ÞÀ»¼ö ÀÖ´Ù. ±×·¯³ª º¸ÅëÀÇ read ¸¦ ¾µ°æ¿ì ÀоîµéÀÎ µ¥ÀÌŸ¸¦ ¼ø¼öÇÏ°Ô ¹®ÀÚ¿­·Î ó¸®ÇϹǷÎ, ¼ýÀÚȤÀº float ÇüÀ¸·Î À̰ÍÀ» ó¸®ÇÏ°í ½ÍÀ»¶§´Â ²Ï º¹ÀâÇÑ Ã³¸®°úÁ¤À» °ÅÃÄ¾ß ÇÑ´Ù. ÀÌ·²¶§ scanf °è¿­ÀÇ Çü½ÄÈ­ ÀÔ·Â ÇÔ¼ö¸¦ »ç¿ëÇÏ¸é °£´ÜÇÏ°Ô Ã³¸®°¡ °¡´ÉÇÏ´Ù.

#include <stdio.h>
int scanf( const char *format, ...);
int fscanf( FILE *stream, const char *format, ...);
int sscanf( const char *str, const char *format, ...);
		
scanf ´Â stdin(Ç¥ÁØÀÔ·Â-Űº¸µå)·Î ºÎÅÍ Çü½ÄÈ­µÈ ÀÔ·ÂÀ» ¹Þ¾ÆµéÀ̰í, fscanf ´Â FILE °´Ã¼·Î ºÎÅÍ ¹Þ¾Æµé ÀδÙ. sscanf ´Â const char *str À» Àоîµé¿©¼­ Çü½ÄÈ­µÈ ÀÔ·ÂÀ» ó¸®ÇÑ´Ù. scanf(..) ´Â fscanf(stdin,..) °ú °°Àº ÀÏÀ» ¼öÇàÇÑ´Ù.
int int1, int2;
scanf("%d%d", &int1, &int2);
printf("%d %d", int1, int2);
		
À§ÀÇ ¿¹´Â 2°³ÀÇ Á¤¼ö¸¦ stdin À¸·Î ºÎÅÍ ÀԷ¹޾Ƽ­ int1 °ú int2 ¿¡ °¢°¢ ÀúÀåÇÑ´Ù. scanf °è¿­ÀÇ ÇÔ¼ö´Â ÀåÄ¡³ª ÆÄÀÏ·Î ºÎÅÍ ¹®ÀÚ¸¦ ÀоîµéÀ϶§, °ø¹é¹®ÀÚ Áï ('\n', ' ', '\t')¸¦ ±âÁØÀ¸·Î ¹®ÀÚ¸¦ ºÐ¸®Çؼ­ ¹Þ¾ÆµéÀδÙ. ¾Æ·¡ÀÇ ¿¹¸¦ ÄÄÆÄÀÏ ÇØ¼­ ÀÔ·ÂÅ×½ºÆ®¸¦ ÇØº¸ÀÚ
#include <stdio.h>

int main()
{
    float float1;
    int int1, int2;
    scanf("%d%d", &int1, &int2);

    printf("%d   %d", int1, int2);
}
		
°ªÀ» ÀÔ·ÂÇÒ¶§ "123"À» ÀÔ·ÂÇϰí "¿£ÅÍ۸¦ ´©¸£°í" "45" ¸¦ ÀÔ·ÂÇϸé int1°ú int2 ¿¡ °¢°¢ 123 °ú 45 °¡ ÀԷµɰÍÀÌ´Ù. ȤÀº "123 45" ÀÌ·±½ÄÀ¸·Î Áß°£¿¡ °ø¹é¹®ÀÚ¸¦ µÎ°í ÀÔ·ÂÇØµµ µ¿ÀÏÇÑ È¿°ú¸¦ °¡Á®¿Ã°ÍÀÌ´Ù. ÀÌÀ¯´Â °ø¹é¹®ÀÚ¸¦ ±âÁØÀ¸·Î Æ÷¸Ëº¯È¯À» Çϱ⠶§¹®ÀÌ´Ù.

¹°·Ð ¿ì¸®´Â °ø¹éÀ̳ª Åǹ®ÀÚ ´ë½Å¿¡ "," ³ª ":" °ú °°Àº ´ÜÀϹ®ÀÚ¸¦ ±¸ºÐÀÚ·Î ÇØ¼­ Çü½ÄÈ­µÈ ÀÔ·ÂÀ» ´Ù·ê¼öµµ ÀÖ´Ù. ´ÜÀÏ ¹®ÀÚ¸¦ ±¸ºÐÀÚ·Î ÇÒ°æ¿ì¿¡´Â ¾Æ·¡¿Í °°ÀÌ ´Ü¼øÇÏ°Ô Ã³¸®°¡ °¡´ÉÇÏ´Ù.

scanf("%d,%d", &int1, &int2);
printf("%d %d", int1, int2);
		
ÇÏÁö¸¸ ÀÌ·±°Í º¸´Ù Á»´õ º¹ÀâÇÑ ¹®ÀÚ¿­ Áï ":=" ·Î ³ª´«´Ù°í ÇßÀ»¶§´Â À§ÀÇ ¹æ¹ýÀ» »ç¿ëÇÒ¼ö ¾ø´Ù. ´ë½Å scanf ¿¡¼­´Â ÀÌ·¯ÇÑ Á»´õ ´Ù¾çÇÑ Çü½ÄÈ­µÈ ÀÔÃâ·ÂÀÇ »ç¿ëÀ» À§Çؼ­ '[]'¸¦ Á¦°øÇÑ´Ù. ÆÐÅϸÅΰú À¯»çÇÑ ¹æ½ÄÀÎ [a-z0-9] ÀÌ·±½ÄÀÇ °£´ÜÇÑ »ç¿ëÀÌ °¡´ÉÇÏ´Ù. À§ÀÇ ":=" ¸¦ ÅëÇÑ Çü½ÄÈ­µÈ ÀÔÃâ·ÂÀ» ¿øÇÑ´Ù¸é
int int1, int2;
char dd[15];
scanf("%d%[=:]%d", &int1, &dd, &int); 
printf("%d - %d", int1, int2);
		
¿Í °°Àº ¹æ¹ýÀ» »ç¿ëÇÏ¸é µÉ°ÍÀÌ´Ù. ÀÌ°É ÀßÀÌ¿ëÇϸé Á»´õ º¹ÀâÇÑ Çü½ÄÀ» °¡Áø ÀÔ·ÂÀ» ¹Þ¾ÆµéÀÏ ¼öµµ Àִµ¥, ¾Æ·¡¿Í °°Àº ¹æ¹ýÀ» »ç¿ëÇÏ¸é µÈ´Ù.
#include <stdio.h>

int main()
{
    int int1, int2;
    char dd[15];
    scanf("%d%[a-zA-Z]%d", &int1, &dd, &int);
    printf("number : %d - %d", int1, int2);
    printf("string : %s, dd);
}
		
À§ÀÇ ÇÁ·Î±×·¥À» ÄÄÆÄÀÏÇÑÈÄ ½ÇÇà½ÃÄѼ­ '1234AbCdEf5677' ÀÌ·±½ÄÀ¸·Î ÀÔ·ÂÀ» ÇØº¸ÀÚ. ±×·¯¸é ¼ýÀÚ¿Í ¹®ÀÚ¿­ÀÌ ¿ÏÀüÈ÷ ±¸ºÐµÇ¾î¼­ °¢°¢ÀÇ º¯¼ö¿¡ µé¾î°¡°Ô µÊÀ» È®ÀÎÇÒ¼ö ÀÖÀ»°ÍÀÌ´Ù.

¶Ç´Ù¸¥ ¿¹¸¦ µé¾îº¸ÀÚ ÀԷ¹޾Ƽ­ ó¸®ÇØ¾ß ÇÏ´Â µ¥ÀÌŸ°¡ "aekf1234kefb"Àϰæ¿ì ¹®ÀÚ¿Í ¼ýÀÚ¸¦ °¢°¢ ºÐ¸®Çؼ­ ¹Þ¾Æ³»·Á¸é ¾î¶»°Ô ÇØ¾ß ÇÒ±î ?

char buf1[25];
char buf2[25];
int  int1;
scanf("%[a-zA-Z]%d%[a-zA-Z]", buf1, int1, buf2);
		
¾ÆÁÖ °£´ÜÇϰí À¯¿¬ÇÏ°Ô Çü½ÄÈ­µÈ ÀÔÃâ·ÂÀÌ °¡´ÉÇÔÀ» ¾Ë¼ö ÀÖÀ»°ÍÀÌ´Ù. ÀÌ·¯ÇÑ ÇÔ¼öµéÀ» ÀÌ¿ëÇÏ¸é ±×µ¿¾È token À» »ç¿ëÇØ¼­ º¹ÀâÇÏ°Ô ÀÛ¾÷Çß´ø ¹®ÀÚ¿­ ÆÄ½Ì ÀÛ¾÷µéÀ» ¸Å¿ì ¼Õ½±°Ô ÇÒ¼ö ÀÖÀ»°ÍÀÌ´Ù.


4절. Æ÷¸Ëº¯È¯ °ü·Ã ¹®ÀÚµé

4.1절. ŸÀÔº¯È¯

ÀÔ·ÂÀ¸·Î ¹Þ¾ÆµéÀÎ °ª ȤÀº Ãâ·Â °ªÀ» Àû´çÇÑ Å¸ÀÔÀ¸·Î º¯È¯Çϱâ À§Çؼ­ »ç¿ëÇÑ´Ù. ÀÌ·¯ÇÑ Å¸ÀÔº¯È¯Àº '%'¸¦ ÀÌ¿ëÇØ¼­ °¡´ÉÇϸç, '%' µÚ¿¡ °¢°¢ÀÇ Å¸ÀÔÀ» ³ªÅ¸³»´Â ¹®ÀÚ¸¦ »ç¿ëÇÏ¸é µÈ´Ù. ´ÙÀ½Àº ÀÌ·¯ÇÑ Å¸ÀÔº¯È¯ ¹®ÀÚµéÀÌ´Ù.

표 1. º¯È¯¹®ÀÚ

dint 
iint 
ounsigned ŸÀÔÀÇ 8Áø¼ö 
uunsigned int 
xunsigned ŸÀÔÀÇ 16Áø¼öÇüÅ´빮ÀڷΠǥ½ÃµÈ´Ù Áï 13 Àº 1D
Xunsigned ŸÀÔÀÇ 16Áø¼öÇüżҹ®ÀڷΠǥ½ÃµÈ´Ù Áï 13 Àº 1d
%%ÀÚü¸¦ ³ªÅ¸³½´Ù. 
s½ºÆ®¸µ point (char *) 
cunsigned char¿¹¸¦µé¾î 65´Â ASCII»ó¿¡¼­ A¸¦ °¡¸£Å²´Ù.
cunsigned char 
f¼Ò¼ýÁ¡À» °¡Áö´Â double-999.99, 999.99
f¼Ò¼ýÁ¡À» °¡Áö´Â double-999.99, 999.99
eºÎµ¿¼Ò¼ýÁ¡À» °¡Áö´Â double-999.99e+99, 9.9e-9
EºÎµ¿¼Ò¼ýÁ¡À» °¡Áö´Â double-999.99E+99, 9.9E-9


4.2절. Çʵå Á¤¿­

¶ÇÇÑ stdio.h ÀÇ ÇÔ¼öµéÀº ÇʵåÁ¤·ÄÀ» ÅëÇØ¼­ º¸±âÁÁÀº Ãâ·Â°á°ú¸¦ ¸¸µé¼öµµ ÀÖ´Ù. À§ÀÇ "º¯È¯¹®ÀÚ" µé°ú Á¶ÇÕÇØ¼­ »ç¿ëÇÔÀ¸·Î½á, ¹®ÀÚµéÀ» Çʵå Á¤¿­ÇÒ¼ö ÀÖ´Ù. º¯È¯ ¹®ÀÚ¾Õ¿¡ ÇʵåÀÇ Æø¸¸Å­ ÀÇ Å©±â¸¦ Àû¾îÁÖ¸é µÈ´Ù. Á¤¿­Àº ±âº»ÀûÀ¸·Î ¿À¸¥ÂÊ Á¤¿­À̸ç, ÁöÁ¤µÈ ÆøÅ©±â ¼ýÀÚ ¾Õ¿¡ "-" ¸¦ »ç¿ëÇÏ¸é ¿ÞÂÊÁ¤·Ä ½Ãų¼ö ÀÖ´Ù. ¶ÇÇÑ ³²´Â Çʵ带 '0' °ªÀ¸·Î ä¿ï¼öµµ ÀÖ´Ù.

#include <stdio.h>
int main()
{
    printf("%8d%12s\t%04d\n", 1, "kim", 12);
    printf("%8d%12s\t%04d\n",  2, "yun", 56 );
}
			
À§ÀÇ ¿¹´Â ¾Æ·¡¿Í °°Àº °á°ú¸¦ º¸¿©ÁÙ °ÍÀÌ´Ù.
        1         kim    0012
        2         yun    0056
			


Cache Error
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.