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

[C programming] ๋ฌธ์ž & ๋ฌธ์ž์—ด ์ž…์ถœ๋ ฅ ํ•จ์ˆ˜ ๋ณธ๋ฌธ

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

[C programming] ๋ฌธ์ž & ๋ฌธ์ž์—ด ์ž…์ถœ๋ ฅ ํ•จ์ˆ˜

์ง•์ง•์•ŒํŒŒ์นด 2023. 8. 22. 16:25
728x90
๋ฐ˜์‘ํ˜•

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

 

๐ŸŒ ๋ฌธ์ž ์ž…์ถœ๋ ฅ ํ•จ์ˆ˜

โ›… getchar() ํ•จ์ˆ˜

: ์‚ฌ์šฉ์ž๊ฐ€ ํ‚ค๋ณด๋“œ๋กœ ์ž…๋ ฅํ•œ ๋ฌธ์ž ํ˜น์€ ๋ฌธ์ž์—ด์—์„œ ํ•œ ๊ธ€์ž๋ฅผ ์ฝ์–ด์„œ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜

: ํ•จ์ˆ˜๊ฐ€ ๋ฌธ์ž๋ฅผ ์ฝ์–ด ์˜ค๋Š” ๊ณณ์€ ์–ด๋–ค ๋ฉ”๋ชจ๋ฆฌ์ธ๋ฐ ๋ณดํ†ต ๊ทธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ฒ„ํผ(Buffer)

 

โ›… putchar( ) ํ•จ์ˆ˜

: ๋ฌธ์ž๋ฅผ ๋ชจ๋‹ˆํ„ฐ ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜

// <stdio.h> : ํ•ต์‹ฌ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ ํ•จ์ˆ˜๋“ค์„ ์ •์˜
#include <stdio.h>

void main()
{
	// getchar( ) ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜์—ˆ์„ ๋• 
	// ํ‚ค๋ณด๋“œ์— ๋Œ€ํ•œ ์ž…์ถœ๋ ฅ ๋ฒ„ํผ๊ฐ€ ๋น„์–ด ์žˆ๋Š” ์ƒํƒœ
	char ch;
	ch = getchar();
	// putchar( )  ๋ฌธ์ž๋ฅผ ๋ชจ๋‹ˆํ„ฐ ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜
	putchar(ch);
	ch = getchar();
	putchar(ch);
	ch = getchar();
	putchar(ch);
}

// TES
โœ… ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ’ ๋ณ€ํ•˜๋Š”๊ฑฐ ํ™•์ธ
0x000000E492D9FC54
ch 104 'h' char
getchar 0x00007ff6677254ae {Cprogramming.exe!getchar} void *
putchar 0x00007ff6677254b4 {Cprogramming.exe!putchar} void *

0x000000E492D9FC54
ch 101 'e' char
getchar 0x00007ff6677254ae {Cprogramming.exe!getchar} void *
putchar 0x00007ff6677254b4 {Cprogramming.exe!putchar} void *

0x000000E492D9FC54
ch 108 'l' char
getchar 0x00007ff6677254ae {Cprogramming.exe!getchar} void *
putchar 0x00007ff6677254b4 {Cprogramming.exe!putchar} void *

 

โ›… getchar() ํ•จ์ˆ˜

: ์ •๋ง ๋ฌธ์ž ํ•˜๋‚˜๋งŒ์„ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค
: ํ‘œ์ค€ ์ž…๋ ฅ ์žฅ์น˜์˜ ํŒŒ์ผ ๋ฒ„ํผ๋ฅผ ๊ฑฐ์น˜์ง€๋„ ์•Š๋Š”๋‹ค

 

โ›… getche( ) ํ•จ์ˆ˜

: ๋งˆ์น˜ ๋ฉ”์•„๋ฆฌ (echo) ์ฒ˜๋Ÿผ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ํ‚ค๋ณด๋“œ์˜ ๊ฐ’์„ ํ™”๋ฉด์— ์ถœ๋ ฅ

// <stdio.h> : ํ•ต์‹ฌ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ ํ•จ์ˆ˜๋“ค์„ ์ •์˜
#include <stdio.h>
#include <conio.h>

void main()
{
	char ch;
	// getch() ํ•จ์ˆ˜๋Š” ์ •๋ง ๋ฌธ์ž ํ•˜๋‚˜๋งŒ์„ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค
	// ํ‘œ์ค€ ์ž…๋ ฅ ์žฅ์น˜์˜ ํŒŒ์ผ ๋ฒ„ํผ๋ฅผ ๊ฑฐ์น˜์ง€๋„ ์•Š๋Š”๋‹ค
	ch = _getch();
	printf("%c\n", ch);

	// getche( ) ํ•จ์ˆ˜๋Š” ๋งˆ์น˜ ๋ฉ”์•„๋ฆฌ (echo) ์ฒ˜๋Ÿผ 
	// ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ํ‚ค๋ณด๋“œ์˜ ๊ฐ’์„ ํ™”๋ฉด์— ์ถœ๋ ฅ
	ch = _getche();
	printf("%c\n", ch);
}

// a
// bb

 

๐ŸŒ ๋ฌธ์ž์—ด ์ž…์ถœ๋ ฅ ํ•จ์ˆ˜

โ›… gets() ํ•จ์ˆ˜

: ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›์•„ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ

: ํ•จ์ˆ˜ ์ธ์ž์˜ ์ž๋ฃŒํ˜•์ด char* (์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜)

 

โ›… puts( ) ํ•จ์ˆ˜

: ์ถœ๋ ฅํ•  ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ๋”ฐ๋กœ ๋ช…์‹œํ•˜์ง€ ์•Š์•„๋„ ์•Œ์•„์„œ ์ถœ๋ ฅ

: C์–ธ์–ด์—์„œ ๋ชจ๋“  ๋ฌธ์ž์—ด์€ NULL๋กœ ๋๋‚˜๋ฏ€๋กœ ๋ณ„๋„๋กœ ๋ช…์‹œํ•˜์ง€ ์•Š์•„๋„ ๋์„ ์ฐพ์•„๋‚ผ ์ˆ˜ ์žˆ์Œ

// <stdio.h> : ํ•ต์‹ฌ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ ํ•จ์ˆ˜๋“ค์„ ์ •์˜
#include <stdio.h>

void main()
{
	char szBuffer[128] = { 0 };
	printf("Input your name: ");
	// ์ „์ฒด ๋ฌธ์ž์—ด์„ ํ†ต์งธ๋กœ ๋ฐ˜ํ™˜
	gets(szBuffer);

	printf("Your name is ");
	// ์ถœ๋ ฅํ•  ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ๋”ฐ๋กœ ๋ช…์‹œํ•˜์ง€ ์•Š์•„๋„ ์•Œ์•„์„œ ์ถœ๋ ฅ
	puts(szBuffer);
}

// Input your name: gani
// Your name is gani

 

728x90
๋ฐ˜์‘ํ˜•
Comments