๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

[C programming] ํ˜•์‹ ๋ฌธ์ž์—ด์„ ์ด์šฉํ•œ ์ž…์ถœ๋ ฅ (printf, scanf) ๋ณธ๋ฌธ

๐Ÿ‘ฉ‍๐Ÿ’ป IoT (Embedded)/C์–ธ์–ด

[C programming] ํ˜•์‹ ๋ฌธ์ž์—ด์„ ์ด์šฉํ•œ ์ž…์ถœ๋ ฅ (printf, scanf)

์ง•์ง•์•ŒํŒŒ์นด 2023. 8. 24. 12:31
728x90
๋ฐ˜์‘ํ˜•

<๋ณธ ๋ธ”๋กœ๊ทธ๋Š” ์ตœํ˜ธ์„ฑ ๋‹˜์˜ ์—ดํ˜ˆ๊ฐ•์˜ C ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์„œ์ ์„ ์ฐธ๊ณ ํ•ด์„œ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค :-)>

 

๐ŸŒ printf() ํ•จ์ˆ˜

: ํ˜•์‹ ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜

โœ… ํ˜•์‹ ๋ฌธ์ž
: ๋ฐ์ดํ„ฐ๋ฅผ ์ž…/์ถœ๋ ฅ ํ•  ๋•Œ, ์ปดํ“จํ„ฐ๊ฐ€ ๊ทธ ํ˜•์‹์„ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋„๋ก, ๋ฐ์ดํ„ฐ์˜ ํ•ด์„์„ ์ง€์‹œํ•ด์ฃผ๋Š” ๋ฌธ์ž

โœ… ๊ฐ€๋ณ€ ์ธ์ž
: ํ˜•์‹ ๋ฌธ์ž๊ฐ€ ๋ช‡ ๊ฐœ๋‚˜ ๋“ค์–ด์žˆ๋Š”์ง€์— ๋”ฐ๋ผ ์ธ์ž ์ˆ˜๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค

 

โ›… ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ณ€ํ™”   

๋ฐฐ์—ด๋กœ ๋ฌธ์ž์—ด ์ €์žฅ

https://m.blog.naver.com/tnsehf12345/220568293823

: ์ž๋ฃŒํ˜•์„ char๋กœ ์„ ์–ธํ•˜๊ณ  Hello๋ผ๋Š” 5๊ธ€์ž๋ฅผ ๋ฐฐ์—ด์— ๋„ฃ์Œ

: ๋ฐฐ์—ด ํฌ๊ธฐ๊ฐ€ 6์ธ ์ด์œ ๋Š” ๋ฌธ์ž์—ด์€ ํ•ญ์ƒ NULL๋ฌธ์ž๋ฅผ ๋งˆ์ง€๋ง‰์— ํฌํ•จ ํ•˜๊ธฐ ๋•Œ๋ฌธ

: ๋ฐฐ์—ด๋กœ ๋ฌธ์ž์—ด์„ ์ €์žฅํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ ๊ตฌ์ฒด์ ์œผ๋กœ ex) 1023๋ฒˆ์ง€์— ์ €์žฅ์ด ๋œ๋‹ค

   

ํฌ์ธํ„ฐ๋กœ ๋ฌธ์ž์—ด ์ €์žฅ

   

https://m.blog.naver.com/tnsehf12345/220568293823

: ์ž๋ฃŒํ˜•์€ ๋™์ผํ•˜๊ฒŒ 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);
}
728x90
๋ฐ˜์‘ํ˜•
Comments