[C programming] ํ์ ๋ฌธ์์ด์ ์ด์ฉํ ์ ์ถ๋ ฅ (printf, scanf)
<๋ณธ ๋ธ๋ก๊ทธ๋ ์ตํธ์ฑ ๋์ ์ดํ๊ฐ์ C ํ๋ก๊ทธ๋๋ฐ ์์ ์ ์ฐธ๊ณ ํด์ ๊ณต๋ถํ๋ฉฐ ์์ฑํ์์ต๋๋ค :-)>
๐ printf() ํจ์
: ํ์ ๋ฌธ์์ด์ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด์ ์ถ๋ ฅํ๋ ํจ์
โ
ํ์ ๋ฌธ์
: ๋ฐ์ดํฐ๋ฅผ ์
/์ถ๋ ฅ ํ ๋, ์ปดํจํฐ๊ฐ ๊ทธ ํ์์ ์ธ์ํ ์ ์๋๋ก, ๋ฐ์ดํฐ์ ํด์์ ์ง์ํด์ฃผ๋ ๋ฌธ์
โ
๊ฐ๋ณ ์ธ์
: ํ์ ๋ฌธ์๊ฐ ๋ช ๊ฐ๋ ๋ค์ด์๋์ง์ ๋ฐ๋ผ ์ธ์ ์๊ฐ ๋ฌ๋ผ์ง๋ค
โ ๋ฉ๋ชจ๋ฆฌ์ ๋ณํ
๋ฐฐ์ด๋ก ๋ฌธ์์ด ์ ์ฅ
: ์๋ฃํ์ char๋ก ์ ์ธํ๊ณ Hello๋ผ๋ 5๊ธ์๋ฅผ ๋ฐฐ์ด์ ๋ฃ์
: ๋ฐฐ์ด ํฌ๊ธฐ๊ฐ 6์ธ ์ด์ ๋ ๋ฌธ์์ด์ ํญ์ NULL๋ฌธ์๋ฅผ ๋ง์ง๋ง์ ํฌํจ ํ๊ธฐ ๋๋ฌธ
: ๋ฐฐ์ด๋ก ๋ฌธ์์ด์ ์ ์ฅํ๊ฒ ๋ ๊ฒฝ์ฐ ๊ตฌ์ฒด์ ์ผ๋ก ex) 1023๋ฒ์ง์ ์ ์ฅ์ด ๋๋ค
ํฌ์ธํฐ๋ก ๋ฌธ์์ด ์ ์ฅ
: ์๋ฃํ์ ๋์ผํ๊ฒ char ์ด์ง๋ง ํฌ๊ธฐ(size)๊ฐ ์๊ณ ๊ทธ๋ฅ ํฌ์ธํฐ์ ๋ฌธ์์ด์ ์ ์ฅ
: Hello ๋ฌธ์์ด์ ์ฒซ ์ฃผ์๋ง ๊ธฐ์ตํ๊ณ ๋๋จธ์ง๋ฅผ ํด๊ฒฐ ํ๊ฒ ๋ค
: ํฌ์ธํฐ๋ก ๋ฌธ์์ด์ ์ ์ฅํ๊ฒ ๋ ๊ฒฝ์ฐ ์ฒซ ์ฃผ์๋ง ๊ธฐ์ตํ๊ณ ๋ฉ๋ชจ๋ฆฌ์์ ์ด๋๊ฐ์ ์ ์ฅ์ด ๋๋ค
=> ์์ ์ฃผ์๋ง ๊ฐ์ง๊ณ ์ด๋๊ฐ์ ์ ์ฅ ๋์ด ์๋ ๋ฌธ์์ด์ ์ฐพ์ ์ ์๋ ์ด์ ๋ Char ์๋ฃํ์ด *ํ ํฌ์ธํฐ๋ฅผ ๋ง๋๊ฒ ๋๋ฉด NULL๋ฌธ์๋ฅผ ๋ง๋ ๋ ๊น์ง ๋ชจ๋ ๋ฌธ์๋ฅผ ์ถ๋ ฅ ํ๊ธฐ ๋๋ฌธ
// <stdio.h> : ํต์ฌ ์
๋ ฅ๊ณผ ์ถ๋ ฅ ํจ์๋ค์ ์ ์
#include <stdio.h>
void main()
{
char* pszData = "Test string!";
// pszData ๋ณ์์ ์ ์ฅ๋ ์ฃผ์๋ฅผ ๊ทผ๊ฑฐ๋ก ๋ฌธ์์ด์ ์ถ๋ ฅ
// str ํฌ์ธํฐ ๋ณ์๋ช
๊ทธ ์์ฒด๋ ์ ์ฒด ๋ฌธ์์ด์ ์ถ๋ ฅํ๊ณ
printf("%s\n", pszData);
// pszData ๋ณ์์ ์ ์ฅ๋ ์ฃผ์๋ฅผ ์ฃผ์ ํ์์ผ๋ก ์ถ๋ ฅ
// ํ ๋ณํํ ํฌ์ธํฐ ๋ณ์๋ช
์ ์ฃผ์ ๊ฐ
printf("%p\n", pszData); // 0x00007FF7DCCC9C10
// &๋ ์ฃผ์ ์ฐ์ฐ์
// &pszData๋ pszData๋ผ๋ ์ด๋ฆ์ ๋ณ์์ ์ฃผ์
// ์ฃผ์ ํ์์ผ๋ก ์ถ๋ ฅ๋๋ ๊ฒ์ pszData๋ผ๋ ์ด๋ฆ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์
printf("%p\n", &pszData); // 0x00000090DEFCF7C8
}
/*
Test string!
00007FF63BE69C10
00000066C233FC48
๊ณ์ํ๋ ค๋ฉด ์๋ฌด ํค๋ ๋๋ฅด์ญ์์ค . . .
*/
โ ๋ถํธ๋ฅผ ํํํ๋ ํ์
๐ scanf ํจ์
: ํ์ ๋ฌธ์์ด์ ์ฌ์ฉํ์ง๋ง ์ด์ด์ง๋ ๊ฐ๋ณ ์ธ์๋ก๋ ์ ๋ถ ์ฃผ์๊ฐ ์์ผ ํ๋ค
→ ์ฌ์ฉ์์ ์ ๋ ฅ์ ์ธ์๋ก ์ ๋ฌ ๋ฐ์ ์ฃผ์์ ์ ์ฅํ๋ค๋ ๋ป
#include <stdio.h>
void main()
{
int nInput = 0;
printf("Input number: ");
scanf_s("%d", &nInput);
printf("%d\n", nInput);
}
//Input number: 10
//10
โ ์ฐ์ต ๋ฌธ์
1. getchar( ) ํจ์๋ฅผ ์ด์ฉํ์ฌ ์ธ ๊ธ์ ์ด์์ ๋ฌธ์์ด์ ์ ๋ ฅ๋ฐ๊ณ ์ ๊ทธ์ค ๋ ๋ฒ์งธ ๋ฌธ์๋ฅผ printf( ) ํจ์๋ก ํ๋ฉด์ ์ถ๋ ฅํ์ธ์.
#include <stdio.h>
void main()
{
char ch;
ch = getchar();
ch = getchar();
printf("%c", ch);
ch = getchar();
}
2. gets( ) ํจ์๋ก ๋ฌธ์์ด์ ์ ๋ ฅ๋ฐ๊ณ ์ printf( ) ํจ์๋ฅผ ํธ์ถํ์ฌ ๊ฐ์ ๋ฌธ์์ด์ ํ๋ฉด์ ์ถ ๋ ฅํ์ธ์. ๋จ, ๋ฌธ์์ด์ ์ต๋ ๊ธธ์ด๋ ์๋ฌธ 32์ ๋ฏธ๋ง์ด๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค.
#include <stdio.h>
void main()
{
// gets( ) ํจ์๋ก ๋ฌธ์์ด์ ์
๋ ฅ๋ฐ๊ณ ์ printf( ) ํจ์๋ฅผ ํธ์ถํ์ฌ ๊ฐ์ ๋ฌธ์์ด์ ํ๋ฉด์ ์ถ๋ ฅํ์ธ์
// ๋จ, ๋ฌธ์์ด์ ์ต๋ ๊ธธ์ด๋ ์๋ฌธ 32์ ๋ฏธ๋ง์ด๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค.
char ch[32] = { 0, };
gets(ch);
printf(ch);
}
3. 2๋ฒ ๋ฌธ์ ์ ์ฝ๋๋ฅผ ์์ ํ์ฌ ์ถ๋ ฅํ ๋ฌธ์์ด์ด ์ ์ฅ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๋ฅผ ๋ฌธ์์ด ์์ ์ถ๊ฐ๋ก ์ถ๋ ฅํ ์ ์๊ฒ ํ์ธ์
#include <stdio.h>
void main()
{
// 2๋ฒ ๋ฌธ์ ์ ์ฝ๋๋ฅผ ์์ ํ์ฌ ์ถ๋ ฅํ ๋ฌธ์์ด์ด ์ ์ฅ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๋ฅผ ๋ฌธ์์ด ์์ ์ถ๊ฐ๋ก ์ถ๋ ฅํ ์ ์๊ฒ ํ์ธ์
char ch[32] = { 0, };
gets(ch);
printf(ch);
printf("\n%p", &ch);
}
4. ์ฌ์ฉ์๋ก๋ถํฐ ํ ๋ฌธ์๋ฅผ ์ ๋ ฅ๋ฐ์ 10์ง์๋ก ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์. ๋จ, getch( ) ํจ์๋ก ์ ๋ ฅ์ ๋ฐ๊ณ printf( ) ํจ์๋ก ์ถ๋ ฅํ์ธ์.
#include <stdio.h>
void main()
{
// ์ฌ์ฉ์๋ก๋ถํฐ ํ ๋ฌธ์๋ฅผ ์
๋ ฅ๋ฐ์ 10์ง์๋ก ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
// ๋จ, getch() ํจ์๋ก ์
๋ ฅ์ ๋ฐ๊ณ printf() ํจ์๋ก ์ถ๋ ฅํ์ธ์.
char ch;
ch = getch();
printf("%d", ch);
}
5. ์ฌ์ฉ์๋ก๋ถํฐ ์ ์๋ฅผ ์ ๋ ฅ๋ฐ์ 8์ง์์ 16์ง์๋ก ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์. ๋จ, ์ง์ ๋ณํํ๋ ๊ณผ์ ์ ๊ณ์ฐํ์ง ๋ง๊ณ printf( ) ํจ์์ ํ์ ๋ฌธ์๋ฅผ ํ์ฉํ์ธ์.
#include <stdio.h>
void main()
{
// ์ฌ์ฉ์๋ก๋ถํฐ ์ ์๋ฅผ ์
๋ ฅ๋ฐ์ 8์ง์์ 16์ง์๋ก ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
// ๋จ, ์ง์ ๋ณํํ๋ ๊ณผ์ ์ ๊ณ์ฐํ์ง ๋ง๊ณ printf() ํจ์์ ํ์ ๋ฌธ์๋ฅผ ํ์ฉํ์ธ์.
int num=0;
scanf_s("%d", &num);
printf("%o\n", num);
printf("%X", num);
}
6. ์ฌ์ฉ์๋ก๋ถํฐ ์๋ฌธ ์๋ฌธ์ ํ ๊ธ์๋ฅผ getch( ) ํจ์๋ก ์ ๋ ฅ๋ฐ๊ณ ์ ์ผ์ ์ ์ซ๊ฐ์ ๋นผ์ ๋ ๋ฌธ์๋ก ๋ณํํ์ฌ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์. ์ฐธ๊ณ ๋ก ์์คํค ์ฝ๋ ํ๋ฅผ ์ด์ฉํ๋ฉด ์ข๋ ์ฝ๊ฒ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
#include <stdio.h>
void main()
{
// ์ฌ์ฉ์๋ก๋ถํฐ ์๋ฌธ ์๋ฌธ์ ํ ๊ธ์๋ฅผ getch( ) ํจ์๋ก ์
๋ ฅ๋ฐ๊ณ ์ ์ผ์ ์ ์ซ๊ฐ์ ๋นผ์
// ๋๋ฌธ์๋ก ๋ณํํ์ฌ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์. ์ฐธ๊ณ ๋ก ์์คํค ์ฝ๋ ํ๋ฅผ ์ด์ฉํ๋ฉด
// ์ข๋ ์ฝ๊ฒ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
char ch;
ch = getch();
printf("%c", ch-32);
}
7. ๋ ์ค์๋ฅผ ์ ๋ ฅ๋ฐ์ ํ๊ท ์ ๊ตฌํ๊ณ ์ ์์์ ์ดํ ๋์งธ ์๋ฆฌ๊น์ง ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์. ๋จ, ์์์ ์ดํ ์ ์งธ ์๋ฆฌ๊ฐ ์ ์ฌ๋๊ฑฐ๋ ๋ฐ์ฌ๋ฆผ๋๋ ๊ฒ์ ์ ํ ๊ณ ๋ คํ์ง ์์๋ ์ข์ต๋๋ค.
#include <stdio.h>
void main()
{
// ๋ ์ค์๋ฅผ ์
๋ ฅ๋ฐ์ ํ๊ท ์ ๊ตฌํ๊ณ ์ ์์์ ์ดํ ๋์งธ ์๋ฆฌ๊น์ง ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
// ๋จ, ์์์ ์ดํ ์
์งธ ์๋ฆฌ๊ฐ ์ ์ฌ๋๊ฑฐ๋ ๋ฐ์ฌ๋ฆผ๋๋ ๊ฒ์ ์ ํ ๊ณ ๋ คํ์ง ์์๋ ์ข์ต๋๋ค.
float num1 = 0;
float num2 = 0;
scanf_s("%f %f", &num1, &num2);
printf("%.2f", (num1 + num2) / 2);
}