36-1-³ª.Ãâ·Â ½ºÆ®¸²

Ç¥ÁØ Ãâ·Â °´Ã¼´Â coutÀÌ¸ç ¶óÀ̺귯¸®¿¡ ÀÇÇØ À̸§ÀÌ ÀÌ¹Ì Á¤ÇØÁ® ÀÖ´Ù. ¹°·Ð À¯´ÏÄÚµå ¹®ÀÚ¿­À» Ãâ·ÂÇØ¾ß ÇÑ´Ù¸é cout ´ë½Å wcout °´Ã¼¸¦ »ç¿ëÇÏ¸é µÈ´Ù. coutÀ¸·Î Ãâ·ÂÀ» º¸³¾ ¶§´Â << ¿¬»êÀÚ(Insertion)¸¦ »ç¿ëÇϴµ¥ C++ÀÇ ¸ðµç ±âº» ŸÀÔ°ú ¹®ÀÚÇü Æ÷ÀÎÅÍ¿¡ ´ëÇØ << ¿¬»êÀÚ°¡ ¿À¹ö·ÎµùµÇ¾î ÀÖÀ¸¹Ç·Î ŸÀÔ¿¡ »ó°ü¾øÀÌ º¸³»±â¸¸ Çϸé << ¿¬»êÀÚ°¡ ŸÀÔÀ» Çؼ®ÇÏ¿© ÀûÀýÇÏ°Ô Ãâ·ÂÇÑ´Ù. ¶ÇÇÑ << ¿¬»êÀÚ°¡ Ãâ·Â °´Ã¼¿¡ ´ëÇÑ ·¹ÆÛ·±½º¸¦ ¸®ÅÏÇϹǷΠ¿¬¼âÀûÀÎ Ãâ·Âµµ °¡´ÉÇÏ´Ù.

<< ¿¬»êÀÚ´Â ¿ø·¡ ºñÆ®¸¦ ¿ÞÂÊÀ¸·Î À̵¿½ÃÅ°´Â ½¬ÇÁÆ® ¿¬»êÀÚÀε¥ ostream Ŭ·¡½º°¡ ÀÌ ¿¬»êÀÚ¸¦ ¿À¹ö·ÎµùÇÏ¿© »ðÀÔ ¿¬»êÀÚ·Î »ç¿ëÇÏ°í ÀÖ´Ù. ÀÌ ¿¬»êÀÚ°¡ ¼±ÅÃµÈ ÀÌÀ¯´Â ¸ð¾çÀÌ Ãâ·ÂÀ» Àß Ç¥ÇöÇϱ⠶§¹®ÀÌ¸ç ±×·¡¼­ Á÷°üÀûÀÌ´Ù. ±×·¯³ª ¿À¹ö·ÎµùµÈ ¿¬»êÀÚ´Â Àǹ̸¦ ¹Ù²ãµµ ¿ì¼± ¼øÀ§³ª ÇÇ¿¬»êÀÚÀÇ °³¼ö µîÀº ¿ø·¡ ¿¬»êÀÚÀÇ °ÍÀ» ±×´ë·Î »ç¿ëÇÑ´Ù´Â Á¡À» ÁÖÀÇÇØ¾ß ÇÑ´Ù. ´ÙÀ½ ¿¹Á¦¸¦ º¸°í Ãâ·Â °á°ú¸¦ ¿¹»óÇØ º¸ÀÚ.

 

¿¹ Á¦ : couterror

#include <Turboc.h>

#include <iostream>

using namespace std;

 

void main()

{

     bool bMan=true;

 

     cout << "´ç½ÅÀº " << bMan==true ? "³²ÀÚ":"¿©ÀÚ" << "ÀÔ´Ï´Ù." << endl;

}

 

¾ÆÁÖ ÂªÀº ¼Ò½ºÀ̹ǷΠ½±°Ô Çؼ®µÇ¸ç ¹» Ãâ·ÂÇÏ°í ½ÍÀº ÄÚµåÀÎÁö ½±°Ô ÁüÀÛÀÌ °¥ °ÍÀÌ´Ù. ±×·¯³ª ½ÇÁ¦·Î ÄÄÆÄÀÏÇØ º¸¸é cout¿¡ == ¿¬»êÀÚ°¡ Á¤ÀǵǾî ÀÖÁö ¾Ê´Ù´Â ¿¡·¯·Î 󸮵Ǵµ¥ »ïÇ× Á¶°Ç ¿¬»êÀÚº¸´Ù << ¿¬»êÀÚ°¡ ¿ì¼± ¼øÀ§°¡ ´õ ³ô±â ¶§¹®ÀÌ´Ù. bManÀ» coutÀ¸·Î ¸ÕÀú Ãâ·ÂÇÏ°í ¸®ÅÏµÈ coutÀ» true¿Í »óµî ºñ±³ÇßÀ¸¹Ç·Î Ʋ¸° ¿¬»êÀÌ µÈ °ÍÀÌ´Ù. »ïÇ× Á¶°Ç ¿¬»ê¹®À» °ýÈ£·Î ½Î¼­ ¸ÕÀú ¿¬»êÇϵµ·Ï ÇÏ¸é ¿øÇÏ´Â °á°ú°¡ ³ª¿Â´Ù.

 

cout << "´ç½ÅÀº " << (bMan==true ? "³²ÀÚ":"¿©ÀÚ") << "ÀÔ´Ï´Ù." << endl;

 

coutÀº Àμö·Î Àü´ÞµÈ Ãâ·Â ´ë»óÀ» ³»ºÎÀûÀÎ º¯È¯ ±ÔÄ¢¿¡ µû¶ó ¹®ÀÚ¿­·Î º¯È¯ÇÏ¿© È­¸éÀ¸·Î Ãâ·ÂÇÑ´Ù. ¿¹¸¦ µé¾î Á¤¼ö 123Àº ¹®ÀÚ¿­ "123"À¸·Î ½Ç¼ö 4.567Àº "4.567"·Î º¯È¯ÇÒ °ÍÀÌ´Ù. ¸¸¾à ÀÌ·± ³»ºÎÀûÀÎ º¯È¯ ±ÔÄ¢¿¡ º¯È­¸¦ ÁÖ°í ½Í´Ù¸é Á¶Á¤ÀÚ(manipulator)¸¦ »ç¿ëÇÑ´Ù. Á¶Á¤ÀÚ´Â coutÀÌ °ªÀ» Ãâ·ÂÇÏ´Â ¹æ½Ä¿¡ ¿©·¯ °¡Áö º¯È­¸¦ ÁÖ´Â ¿ªÇÒÀ» ÇÑ´Ù. ¸ÕÀú Á¤¼öÀÇ Áø¹ýÀ» º¯°æÇØ º¸ÀÚ.

 

¿¹ Á¦ : coutradix

#include <Turboc.h>

#include <iostream>

using namespace std;

 

void main()

{

     int i=1234;

 

     hex(cout);

     cout << i << endl;

 

     cout << "8Áø¼ö : " << oct << i << endl;

     cout << "16Áø¼ö : " << hex << i << endl;

     cout << "10Áø¼ö : " << dec << i << endl;

}

 

Á¤¼ö i¸¦ º°´Ù¸¥ ÁöÁ¤¾øÀÌ cout << i;·Î º¸³»¸é 10Áø¼ö·Î Ãâ·ÂµÇ´Âµ¥ 8Áø¼ö³ª 16Áø¼ö·Î ¹Ù²ã¼­ Ãâ·ÂÇÒ ¼ö ÀÖ´Ù. hex, oct, dec µîÀÇ Àü¿ª ÇÔ¼ö´Â Àμö·Î ÁÖ¾îÁø Ãâ·Â °´Ã¼ÀÇ Áø¹ýÀ» º¯°æÇϴµ¥ ÇÑ ¹ø º¯°æÇØ ³õÀ¸¸é ÀÌÈĺÎÅÍ Ãâ·Â °´Ã¼´Â ÁöÁ¤ÇÑ Áø¹ý´ë·Î Ãâ·ÂÇÑ´Ù. ¿¹¸¦ µé¾î hex(cout)·Î coutÀÇ Ãâ·Â ¹æ½ÄÀ» 16Áø¹ýÀ¸·Î ¹Ù²Û ÈÄ i¸¦ Ãâ·ÂÇϸé 16Áø¼ö·Î Ãâ·ÂµÉ °ÍÀÌ´Ù.

hex, oct, dec µîÀÇ ÇÔ¼ö¸¦ Á÷Á¢ È£ÃâÇÏ´Â ´ë½Å << ¿¬»êÀÚ·Î ÇÔ¼ö¸¦ coutÀ¸·Î º¸³»µµ ¸¶Âù°¡Áö È¿°ú°¡ ÀÖ´Ù. << ¿¬»êÀÚ°¡ ÇÔ¼ö Æ÷ÀÎÅÍ¿¡ ´ëÇؼ­µµ ¿À¹ö·ÎµùµÇ¾î ÀÖ¾î Àü¿ª ÇÔ¼ö¸¦ ´ë½Å È£ÃâÇϵµ·Ï µÇ¾î Àֱ⠶§¹®ÀÌ´Ù. << ¿¬»êÀÚ°¡ ÇÔ¼öÀÌ°í Àμö·Î ÇÔ¼ö Æ÷ÀÎÅÍ°¡ Àü´ÞµÇ¾úÀ¸¹Ç·Î Àü´ÞµÈ ÇÔ¼ö¸¦ È£ÃâÇÒ ¼ö ÀÖ´Â °ÍÀº ´ç¿¬ÇÏ´Ù. ¶ÇÇÑ << ¿¬»êÀÚ°¡ °´Ã¼ÀÇ ·¹ÆÛ·±½º¸¦ ¸®ÅÏÇϹǷΠcoutÀ¸·Î hex¸¦ º¸³½ ÈÄ °ð¹Ù·Î Á¤¼ö¸¦ Ãâ·ÂÇÏ´Â °Íµµ °¡´ÉÇÏ´Ù. ¿¹Á¦ÀÇ ½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù.

 

4d2

8Áø¼ö : 2322

16Áø¼ö : 4d2

10Áø¼ö : 1234

 

Á¤¼ö 1234°¡ 16Áø¼ö·Î Ãâ·ÂµÇ¾úÀ¸¸ç << ¿¬»êÀÚ·Î ÇÔ¼ö Æ÷ÀÎÅ͸¦ º¸³»µµ Áø¹ýÀÌ º¯°æµÇ´Â °ÍÀ» º¼ ¼ö ÀÖ´Ù. Áø¹ý ÁöÁ¤Àº Á¤¼öÇü¿¡ ´ëÇؼ­¸¸ µ¿ÀÛÇÏ¸ç ½Ç¼ö³ª ¹®ÀÚ¿­¿¡ ´ëÇؼ­´Â ¾Æ¹«·± ¿µÇâµµ ÁÖÁö ¾Ê´Â´Ù. ´ÙÀ½Àº Ãâ·ÂÆø°ú °ü°èµÈ Á¶Á¤ÀÚ¿¡ ´ëÇØ ¿¬±¸ÇØ º¸ÀÚ.

 

¿¹ Á¦ : coutwidth

#include <Turboc.h>

#include <iostream>

using namespace std;

 

void main()

{

     int i=1234;

     int j=-567;

 

     // Ãâ·ÂÆø ÁöÁ¤

     cout << i << endl;

     cout.width(10);

     cout << i << endl;

     cout.width(2);

     cout << i << endl;

 

     // ä¿ò ¹®ÀÚ ÁöÁ¤

     cout.width(10);

     cout.fill('_');

     cout << i << endl;

     cout.fill(' ');

 

     // Á¤·Ä ÁöÁ¤

     cout.width(20);

     cout << left << j << endl;

     cout.width(20);

     cout << right << j << endl;

     cout.width(20);

     cout << internal << j << endl;

}

 

½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù.

 

1234

      1234

1234

______1234

-567

                -567

-                567

 

Ãâ·ÂÆøÀº width ¸â¹ö ÇÔ¼ö·Î ÁöÁ¤Çϴµ¥ printfÀÇ %10d¶û µ¿ÀÏÇÑ ±â´ÉÀÌ´Ù. º°´Ù¸¥ ÁöÁ¤ÀÌ ¾øÀ» °æ¿ì µ¥ÀÌÅÍÀÇ ¿ø·¡ ÀÚ¸®¼ö¸¸Å­ Ãâ·ÂÇϴµ¥ Á¤¼ö 1234´Â 4Ä­, ¹®ÀÚ¿­ "String"Àº ¿©¼¸ Ä­¿¡ Ãâ·ÂµÉ °ÍÀÌ´Ù. width ÇÔ¼ö·Î Ãâ·ÂÆøÀ» ÁöÁ¤Çϸé ÃÖ¼ÒÇÑ ÁöÁ¤ÇÑ Æø¸¸Å­Àº »ç¿ëÇÑ´Ù. ¿¹Á¦¿¡¼­ i´Â 4ÀÚ¸®¼öÀ̹ǷΠ4Ä­¿¡ ¸ÂÃß¾î Ãâ·ÂµÇÁö¸¸ width(10)À» È£ÃâÇÑ ÈÄ Ãâ·ÂÇϸé 10Ä­À» Â÷ÁöÇÏ°í ¾ÕÂÊ ¿©¼¸ Ä­ÀÌ °ø¹éÀ¸·Î ³²°ÜÁø´Ù.

´Ü, width°¡ ÁöÁ¤ÇÏ´Â Ãâ·ÂÆøÀº ¾îµð±îÁö³ª ÃÖ¼ÒÆøÀÏ »ÓÀÌ¸ç µ¥ÀÌÅÍÀÇ ±æÀÌ°¡ ÃÖ¼ÒÆøº¸´Ù ´õ Ŭ °æ¿ì´Â ÃÖ¼ÒÆøÀ» ¹«½ÃÇÏ°í µ¥ÀÌÅÍÀÇ ±æÀ̸¸Å­ Ãâ·ÂÇÑ´Ù. width(2)·Î ÃÖ¼ÒÆøÀ» ÁöÁ¤ÇÑ ÈÄ i¸¦ Ãâ·ÂÇϸé 4ÀÚ¸® ¸ðµÎ Ãâ·ÂµÈ´Ù. width´Â À̾îÁö´Â Ãâ·Â¿¡ ´ëÇØ µü ÇÑ ¹ø¸¸ Àû¿ëµÇ¸ç Ãâ·Â ÈÄ ¿ø·¡ ¼³Á¤À¸·Î µ¹¾Æ¿Àµµ·Ï µÇ¾î ÀÖ´Ù. µû¶ó¼­ ¸Å Ãâ·ÂÇÒ ¶§¸¶´Ù ¿øÇÏ´Â ÆøÀ» ÀÏÀÏÀÌ ÁöÁ¤ÇØ¾ß ÇÑ´Ù. width ÇÔ¼ö´Â ¿©·¯ °¡Áö ¸é¿¡¼­ printfÀÇ Ãâ·ÂÆø ÁöÁ¤ ¼­½Ä°ú À¯»çÇÑ ¸éÀÌ ¸¹´Ù.

fill ÇÔ¼ö´Â ä¿ò ¹®ÀÚ¸¦ ÁöÁ¤Çϴµ¥ Ãâ·ÂÆøÀÌ µ¥ÀÌÅÍÀÇ Æøº¸´Ù ´õ ³ÐÀ» °æ¿ì ºó Ä­À» ¾î¶² ¹®ÀڷΠä¿ï °ÍÀΰ¡¸¦ ÁöÁ¤ÇÑ´Ù. µðÆúÆ®´Â °ø¹é ¹®ÀÚ·Î µÇ¾î ÀÖ¾î ³²´Â ÆøÀº ºó °ø¹éÀÌ Ãâ·ÂµÇÁö¸¸ ¿øÇÒ °æ¿ì °ø¹éÀÌ ¾Æ´Ñ ´Ù¸¥ ¹®ÀÚ¸¦ Ãâ·ÂÇϵµ·Ï ÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î È­Æó ¾×¼ö°°Àº °æ¿ì Ãâ·ÂµÈ °á°úÀÇ ¾ÕµÚ¿¡ ¼ýÀÚ¸¦ ´õ ÀûÁö ¸øÇϵµ·Ï Çϱâ À§ÇØ °ø¹éÀÌ ¾Æ´Ñ ´Ù¸¥ ¹®ÀڷΠä¿ö ³Ö±âµµ ÇÑ´Ù. ä¿ò ¹®ÀÚ´Â ÇÑ ¹ø ÁöÁ¤ÇÏ¸é °è¼Ó À¯È¿ÇϹǷΠä¿ò ¹®ÀÚ¸¦ ÇØÁ¦ÇÏ·Á¸é ´Ù½Ã °ø¹é ¹®ÀÚ¸¦ ÁöÁ¤ÇØ¾ß ÇÑ´Ù.

Á¤·Ä ÁöÁ¤Àº Ãâ·ÂÆøÀÌ µ¥ÀÌÅÍÆøº¸´Ù ´õ Ŭ °æ¿ì ¾î´ÀÂÊ¿¡ µ¥ÀÌÅ͸¦ Ãâ·ÂÇÒ °ÍÀΰ¡¸¦ ÁöÁ¤Çϴµ¥ left, right Á¶Á¤ÀÚ¸¦ coutÀ¸·Î º¸³¿À¸·Î½á º¯°æÇÒ ¼ö ÀÖ´Ù. internalÀº ´Ù¼Ò Ư¼öÇÑ Á¤·ÄÀε¥ ºÎÈ£³ª Áø¹ý ÁöÁ¤(0x µî)Àº ¿ÞÂÊ¿¡, ¼ýÀÚ´Â ¿À¸¥ÂÊ¿¡ Ãâ·ÂÇÏ´Â Á¤·Ä ¹æ½ÄÀÌ´Ù. ´ÙÀ½Àº ½Ç¼öÀÇ Ãâ·Â¿¡ °ü·ÃµÈ Á¶Á¤ÀÚ¿¡ ´ëÇØ ¾Ë¾Æº¸ÀÚ.

 

¿¹ Á¦ : coutfloat

#include <Turboc.h>

#include <iostream>

using namespace std;

 

void main()

{

     double d=1.234;

 

     // ½Ç¼öÀÇ Á¤¹Ðµµ ÁöÁ¤

     cout << d << endl;

     cout.precision(3);

     cout << d << endl;

     cout.precision(10);

     cout << showpoint << d << endl;

     cout.precision(6);

 

     // ½Ç¼ö Ãâ·Â ¹æ½Ä

     cout << fixed << d << endl;

     cout << scientific << d << endl;

}

 

½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù.

 

1.234

1.23

1.234000000

1.234000

1.234000e+000

 

coutÀº µðÆúÆ®·Î ½Ç¼ö¸¦ ¿©¼¸ ÀÚ¸®±îÁö¸¸ Ãâ·ÂÇϴµ¥ precision ÇÔ¼ö¸¦ »ç¿ëÇϸé Á¤¹Ðµµ¸¦ Á¶Á¤ÇÒ ¼ö ÀÖ´Ù. precisionÀº ½Ç¼öÀÇ Àüü Ãâ·Â ÀÚ¸® ¼ö¸¦ ÁöÁ¤Çϴµ¥ ¸¸¾à ÁöÁ¤ÇÑ ÀÚ¸®¼öº¸´Ù ´õ ±æ´Ù¸é µÚÂÊÀÇ ¼ö´Â ¹Ý¿Ã¸² 󸮵ȴÙ. ÁöÁ¤ÇÑ ÀÚ¸®¼öº¸´Ù ½Ç¼ö°¡ ªÀ» °æ¿ì´Â ÈÄÇà Á¦·Î¸¦ Ãâ·ÂÇÏÁö ¾Ê´Âµ¥ ÈÄÇà Á¦·Î±îÁö Á¤È®ÇÏ°Ô Ãâ·ÂÇÏ°í ½Í´Ù¸é showpoint¶ó´Â Á¶Á¤ÀÚ¸¦ »ç¿ëÇÑ´Ù.

½Ç¼öÀÇ Ãâ·Â ¹æ½ÄÀº °íÁ¤ ¼Ò¼öÁ¡ ¹æ½Ä°ú ºÎµ¿ ¼Ò¼öÁ¡ ¹æ½ÄÀÌ Àִµ¥ °¢°¢ fixed, scientificÀ̶ó´Â Á¶Á¤ÀÚ·Î º¯°æÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½Àº ³ª¸ÓÁö Àâ´ÙÇÑ ÁöÁ¤ÀÚµéÀÌ´Ù.

 

¿¹ Á¦ : coutmanip

#include <Turboc.h>

#include <iostream>

using namespace std;

 

void main()

{

     int i=1234;

     double d=56.789;

     char *str="String";

     bool b=true;

 

     // boolÇü Ãâ·Â ¹æ½Ä

     cout << b << endl;

     cout << boolalpha << b << endl;

 

     // Áø¹ý Á¢µÎ Ãâ·Â ¹× ´ë¼Ò¹®ÀÚ

     cout << hex << i << endl;

     cout << showbase << i << endl;

     cout << uppercase << i << endl;

 

     // + ¾ç¼ö ±âÈ£ Ç¥½Ã

     cout << dec << showpos << i << endl;

}

 

¼Ò½º ³»ÀÇ ÁÖ¼®°ú ½ÇÇà °á°ú¸¦ º¸¸é °¢ Á¶Á¤ÀÚÀÇ ¿ªÇÒÀ» ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

 

1

true

4d2

0x4d2

0X4D2

+1234

 

boolalpha Á¶Á¤ÀÚ´Â boolÇüÀÇ º¯¼ö¸¦ 1 ¶Ç´Â 0À¸·Î Ãâ·ÂÇÏÁö ¾Ê°í true, false¶ó´Â ¹®ÀÚ¿­·Î Ãâ·ÂÇÑ´Ù. showbase Á¶Á¤ÀÚ´Â 16Áø Ç¥±â½Ã 0x¶ó´Â Áø¹ý Ç¥±â¸¦ ºÙÀ̸ç uppercase´Â 16Áø Ç¥±â¿¡ »ç¿ëµÇ´Â X¿Í A~F±îÁöÀÇ ¿µ¹®ÀÚ¸¦ ´ë¹®ÀÚ·Î Ãâ·ÂÇÑ´Ù. showpos´Â ¾ç¼ö¿¡ ´ëÇؼ­µµ + ºÎÈ£¸¦ Ãâ·ÂÇÑ´Ù.

Ãâ·Â °´Ã¼´Â ÆøÀ̳ª Á¤¹Ðµµ, Á¤·Ä ¹æ½Ä, ä¿ò ¹®ÀÚ, Áø¹ý µî¿¡ ´ëÇÑ ¿É¼ÇÀ» ±â¾ïÇÏ´Â Ç÷¡±×µéÀ» °¡Áö¸ç Á¶Á¤ÀÚµéÀº ÀÌ Ç÷¡±×¸¦ º¯°æÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù. Á¶Á¤ÀÚ ¿Ü¿¡µµ Ç÷¡±×¸¦ Á÷Á¢ º¯°æÇÏ´Â setf, unsetf¶ó´Â ¸â¹ö ÇÔ¼öµéÀÌ Àִµ¥ ÀÌ ÇÔ¼öµéÀ» »ç¿ëÇϸé Ãâ·Â ¾ç½ÄÀ» ÀÏ°ýÀûÀ¸·Î ÇѲ¨¹ø¿¡ º¯°æÇϰųª Á¶»çÇÒ ¼öµµ ÀÖ´Ù.