์ ์ปดํ๋ผ์ด ํ์ ๋, ์ค๋ฅ
printf๋ฅผ fprintf๋ก ์์ฑํ๋ฉด ์ค๋ฅ ์์ด์ง.
์ฐธ๊ณ :
https://haruhiism.tistory.com/8
printf, fprintf, sprintf๋ ์ด๋ค ์ฐจ์ด์ผ๊น?
C/C++ ์์๋ ์ฌ๋ฌ๊ฐ์ง ์ถ๋ ฅ ๋ฐฉ๋ฒ์ด ์๋ค. C์ธ์ด์ printf๋ถํฐ C++์ cin๊น์ง ๋ค์ํ ํจ์, ๊ฐ์ฒด์ ๋ฉ์๋๊ฐ ์์ง๋ง ๊ทธ ์ค ์์ํ๋ ์ถ๋ ฅ์ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์์๋ ์ฌ๋ฌ๊ฐ์ง ํจ์๋ฅผ ์๊ฐํด ๋ณด๋ ค
haruhiism.tistory.com
C/C++ ์์๋ ์ฌ๋ฌ๊ฐ์ง ์ถ๋ ฅ ๋ฐฉ๋ฒ์ด ์๋ค. C์ธ์ด์ printf๋ถํฐ C++์ cin๊น์ง ๋ค์ํ ํจ์, ๊ฐ์ฒด์ ๋ฉ์๋๊ฐ ์์ง๋ง ๊ทธ ์ค ์์ํ๋ ์ถ๋ ฅ์ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์์๋ ์ฌ๋ฌ๊ฐ์ง ํจ์๋ฅผ ์๊ฐํด ๋ณด๋ ค ํ๋ค.
1. printf()
int printf(const char *format-string, argument-list);
์ผ๋ฐ์ ์ผ๋ก printf()๋ฅผ ์ฌ์ฉํ ๋๋ ๋งค๊ฐ๋ณ์๋ก ์๋ฐ์ดํ(")๋ก ์ธ์ธ ๋ฌธ์์ด๊ณผ ๋ฌธ์์ด์์ %๋ก ์ง์ ๋ ์์ ๋งค๊ฐ๋ณ์๋ฅผ ๊ฐ์ด ์ ๋ฌํ์ฌ ์ถ๋ ฅํ๋ค. ๋ํ ์ค๋ฐ๊ฟ, ์ปค์ ์ด๋ ๋ฑ์ ์ํด ์ด์ค์ผ์ดํ ์ํ์ค๊ฐ ์ฌ์ฉ๋๋ค.
์ด๋ ๊ฐ๋จํ ์์์ ๊ณ ๋ คํ ์ถ๋ ฅ์ ์ฌ์ฉ๋๋ฉฐ ๊ฐ์ฅ ๋ง์ด ์ ํ๊ณ ํ์ต ์ด๊ธฐ์ ์ต์ํด์ ธ์ผ ํ ํต์ฌ์ ์ธ ํจ์๋ผ๊ณ ํ ์ ์๋ค.
#include <stdio.h>
int main()
{
printf("Hello World!")
}
C์ธ์ด ๊ด๋ จ ๋์๋ฅผ ํ๋ฒ๋ง์ด๋ผ๋ ํผ์ณ๋ณด์๋ค๋ฉด ์์ ๊ฐ์ Hello World์์ ๊ฐ ๊ธฐ์ต๋ ๊ฒ์ด๋ค.
์ด๋ ๊ฒ๋ง ๋ณด๋ฉด ๊ฐ๋จํ ๊ธฐ๋ฅ์ ๊ฐ์ง ํจ์๋ก ๋ณด์ด์ง๋ง, ์๋์ ์ถ์ฒ ๋งํฌ๋ง ๋ค์ด๊ฐ ๋ณด์๋ ์์ฒญ๋ ์์ ๋งค๋ด์ผ์ ๋ณผ ์ ์๋ค.
์ฆ ๊ต์ฅํ ๋ณต์กํ ํจ์๋ผ๋ ๊ฒ์ด๋ค.
๊ฐ๋ตํ ์ ๋ฆฌํ๊ณ ๋ค์ด๊ฐ์๋ฉด ์ด printf()๊ฐ ํ๋ ๊ฒ์ ์์ํ๋ ๋ฌธ์์ด์ ํ์ค ์ถ๋ ฅ(Standard Output, stdout)์ ๋ณด๋ด๋ ๊ฒ์ด๋ค.
์ด๋ฐ stdout, stdin, stderr๋ฑ์ ํ์ค ์คํธ๋ฆผ์ด๋ผ๊ณ ๋ถ๋ฆฌ๋๋ฐ ์ด๋ ์ ๋์ค ์ด์์ฒด์ ์ ์ ์ฐ์ผ๋ก ์ปดํจํฐ์ ์ฌ์ฉ์ ์ฌ์ด์์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์งํ๋๋ ์ ์ถ๋ ฅ์ ์ถ์์ ์ผ๋ก ํํํ ๊ฒ์ด๋ผ ์๊ฐํ๋ฉด ๋๋ค. ์ฌ์ฉ์๊ฐ ์ฌ์ฉ์ ์ํด ๋ฐ๋ก ์์ ์ ํ ํ์๋ ์์ผ๋ฉฐ <stdio.h> ํค๋ ํ์ผ์ ํฌํจ๋์ด ์๋ค. ์์ธํ ๋ด์ฉ์ ์ด๊ณณ์ ์ฐธ๊ณ ํ์.
์๋ฌดํผ ์ด๋ฐ ํ์ค ์ถ๋ ฅ์ ๋ฌธ์์ด์ ๋ณด๋ธ๋ค๋ ๊ฒ์ ์ปดํจํฐ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅ์ฅ์น๋ฅผ ํตํด ์ฐ๋ฆฌ์๊ฒ ๋ณด์ฌ์ฃผ๋ ์ผ๋ จ์ ๊ณผ์ ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. ์ฌ๊ธฐ์๋ ์ฝ์ ํ๋ก๊ทธ๋จ์ด๋ฏ๋ก ์๋์ฐ์ ๋ช ๋ น ํ๋กฌํํธ, ๋ฆฌ๋ ์ค์ ํฐ๋ฏธ๋ ๋ฑ์ ๋ํ๋๋ ๊ฒ์ด๋ค.
ํ์ง๋ง ์ค์ํ ๊ฒ์ printf() ์ ์์ ๊ธฐ๋ฅ์ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง, ๊ทธ๋ฅผ ์ด๋ป๊ฒ ์์ฉํ ์ ์๋์ง๊ฐ ๋ ๊ฒ์ด๋ค.
ํจ์์ ์ํ์์ ๋ณผ ์ ์๋ฏ์ด printf()๋ const char* ํ ๋ฌธ์์ด(format-string)๊ณผ ๋งค๊ฐ๋ณ์ ๋ชฉ๋ก(argument-list)๋ฅผ ๋ฐ๋๋ฐ ์ ์์ ๊ฒฝ์ฐ const char* ํ ๋ฌธ์์ด์ ์ฝ๋ฉ ๋จ๊ณ์์๋ถํฐ ํฐ๋ฐ์ดํ(")๋ก ๋ฌถ์ธ ๋ฌธ์์ด ์์๋ฅผ ์๋ฏธํ๋ค.
์ฐ๋ฆฌ๊ฐ printf()์์ "Hello World" ๋ฑ์ ์จ ๋ฃ๋ ๊ฒ๋ ๋ฌธ์์ด ์์๋ฅผ ์ ์ธ, ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌํ ๊ฒ์ด๋ค.
๊ทธ๋ ๋ค๋ฉด ๋ค์ ๋งค๊ฐ๋ณ์ ๋ชฉ๋ก์๋ ๋น์ฐํ ์ด ๋ฌธ์์ด ์์์์ ์ง์ ๋ ํ์์ ๋งค๊ฐ๋ณ์๋ค์ด ์์์ ๋ง๊ฒ ๋ค์ด๊ฐ ๊ฒ์ด๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด 'ํ์'์ด๋ ๊ฒ์ ๋ฌด์์ผ๊น?
๋๋ถ๋ถ์ C์ธ์ด ๊ต์ฌ์๋ ์ด printf()์ ์ฌ์ฉ๋๋ ํ์ ์ง์ ์๋ค์ ๋ชฉ๋ก์ด ๋์ด๋์ด ์๋ค.
specifierOutputExample
d or i | Signed decimal integer | 392 |
u | Unsigned decimal integer | 7235 |
o | Unsigned octal | 610 |
x | Unsigned hexadecimal integer | 7fa |
X | Unsigned hexadecimal integer (uppercase) | 7FA |
f | Decimal floating point, lowercase | 392.65 |
F | Decimal floating point, uppercase | 392.65 |
e | Scientific notation (mantissa/exponent), lowercase | 3.9265e+2 |
E | Scientific notation (mantissa/exponent), uppercase | 3.9265E+2 |
g | Use the shortest representation: %e or %f | 392.65 |
G | Use the shortest representation: %E or %F | 392.65 |
a | Hexadecimal floating point, lowercase | -0xc.90fep-2 |
A | Hexadecimal floating point, uppercase | -0XC.90FEP-2 |
c | Character | a |
s | String of characters | sample |
p | Pointer address | b8000000 |
n | Nothing printed. The corresponding argument must be a pointer to a signed int. The number of characters written so far is stored in the pointed location. |
|
% | A % followed by another % character will write a single % to the stream. | % |
ํผ์ผํธ ๊ธฐํธ(%)์ ๊ทธ ๋ค์ ๋ถ๋ ๋ฌธ์๋ก ๊ตฌ์ฑ๋๋ ํ์ ์ง์ ์๋ ์ฌ๋ฌ ์ข ๋ฅ๊ฐ ์์ง๋ง ์์ฃผ ์ฐ์ด๋ ๊ฒ๋ค์ ๋ช ๊ฐ ์ถ๋ ค๋ณด์๋ฉด
- %d : ์ ์(int) ์ถ๋ ฅ
- %f : ์์(float) ์ถ๋ ฅ
- %lf : ์์(double) ์ถ๋ ฅ
- %c : ๋ฌธ์(char) ์ถ๋ ฅ
- %s : ๋ฌธ์์ด(char[], char*) ์ถ๋ ฅ
- %p : ํฌ์ธํฐ ์ฃผ์(1a2b3c4d๊ฐ์ 16์ง์) ์ถ๋ ฅ
๋ฑ์ผ๋ก ๊ฐ์ถ๋ฆด ์ ์๋ค. ์ด๋ค์ ํ์ ์ง์ ์์ ์ด์ ์์ํ๋ ๋งค๊ฐ๋ณ์์ ์๋ฃํ์ด ์ผ์นํ์ง ์์ผ๋ฉด ๋๋ถ๋ถ ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ์ง ์๋๋ฐ ์๋์ ์ด๋ ๋น์๋์ ์ด๋ ๊ฐ์ ์๋ฃํ์ ์ผ์น์ํค๋ ๊ฒ์ด ์ข๋ค. ์๋ฃํ์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฐ์ผ๋ก ์ถ๋ ฅ๋๊ฑฐ๋ ๋ฐ์ดํฐ๊ฐ ์์ค๋๋ ๊ฒฝ์ฐ๊ฐ ์๊ธฐ ๋๋ฌธ์ธ๋ฐ ๋ํ์ ์ธ ์๋ก ๋ฌธ์ 'a'๋ฅผ ์ ์๋ก ์ถ๋ ฅ์ํจ๋ค๋ฉด ASCII ๊ฐ์ด ๋์ค๊ฑฐ๋ ์์(36.5)๋ฅผ ์ ์๋ก ์ถ๋ ฅ์ํจ๋ค๋ฉด 36์ผ๋ก ์์๋ถ๊ฐ ์๋ฆฌ๋ ๋ฑ์ ๋ฌธ์ ๊ฐ ์๋ค.1
๋ํ ์ด๋ฐ ํ์ ์ง์ ์๋ค์ ๋จ์ํ ํผ์ผํธ ๊ธฐํธ์ ๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ง ๊ฒ์ด ์๋๋ค.
์ด๋ ๋ช๊ฐ์ง ์์์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋๋ฐ ๊ทธ๋ ๋ค์๊ณผ ๊ฐ๋ค.
flags | width | precision | prefix | type |
- flags : ๋ถํธ, ๊ณต๋ฐฑ, ์์์ , 8์ง ๋ฐ 16์ง ์ ๋๋ถ(0, 0x)์ ์ถ๋ ฅ๊ณผ ์ ๋ ฌ ์์ ๋ฑ์ ๊ฒฐ์ ํ๋ค. '-'๋ ์ผ์ชฝ ์ ๋ ฌ, '+'๋ ๋ถํธ ์ถ๋ ฅ ๋ฑ์ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ '0'์ ๊ฒฝ์ฐ ๋น ์๋ฆฟ์๋ฅผ ๋น์นธ์ด ์๋ 0์ผ๋ก ์ถ๋ ฅํ๋ ๋ฑ์ ํน์ง์ ๊ฐ์ง๊ณ ์๋ค. ์ด๊ณณ ์ฐธ๊ณ
- width : ์ถ๋ ฅ๋ ๋ฌธ์์ ์ต์ ๊ฐฏ์๋ฅผ ์ง์ ํ๋ค. ์ด๊ณณ ์ฐธ๊ณ
- precision : ๋ฌธ์์ด, ์ ํจ ์๋ฆฟ์ ๋๋ ๋ถ๋ ์์์ ๊ฐ์ ์์์ ๋ท์๋ฆฌ์๊ฐ ์ถ๋ ฅ๋๋ ์ต๋ ์๋ฆฟ์ ๋๋ ์ ์ ๊ฐ์ด ์ถ๋ ฅ๋๋ ์ต์ ์๋ฆฟ์๋ฅผ ์ง์ ํ๋ ์ ํ์ 10์ง์ ์ซ์๋ค.
- prefix : ์ธ์์ ํฌ๊ธฐ๋ฅผ ์ง์ ํ๋ค. ๋ถ๋์์๋ฅผ ๋ํ๋ด๋ float์ด '%f'์ธ๊ฒ์ ๋นํด double์ '%lf'์ธ ๊ฒ์ ์๋ก ๋ค ์ ์๋ค.
- type : ์์์ ์ธ๊ธํ ์๋ฃํ์ ๋ฐ๋ฅธ ๋ฌธ์๊ฐ ์์นํ๋ค. ์ ์๋ฉด 'd', ๋ฌธ์๋ฉด 'c' ๊ฐ์ ์์ด๋ค.
#include
int main()
{
int num1 = 100;
int num2 = 200;
printf("%05d \n", num1);
printf("%5d \n", num2);
printf("%-05d \n", num2);
return 0;
}

๋จผ์ num1์ ๊ฒฝ์ฐ "%05d" ํ์ ์ถ๋ ฅ์ ํตํด 5๊ธ์ ๊ณต๊ฐ์์ ๋น ๊ณต๊ฐ์ 0์ผ๋ก ์ฑ์ฐ๋๋ก ์ถ๋ ฅ์์ผฐ๋ค.(flags: 0, width: 5)
์ถ์ฒ:
https://www.ibm.com/support/knowledgecenter/ko/ssw_ibm_i_73/rtref/printf.htm
https://ko.wikipedia.org/wiki/%ED%91%9C%EC%A4%80_%EC%8A%A4%ED%8A%B8%EB%A6%BC
http://www.cplusplus.com/reference/cstdio/printf/#compatibility
2. fprintf()
int fprintf(FILE *stream, const char *format-string, argument-list);
fprintf()๋ printf()์ ์ ์ฌํ์ง๋ง ์์ f๋ผ๋ ๊ธ์๊ฐ ๋ถ์ด ์๋๋ฐ ์ด๋ file์ ๋ปํ๋ค๊ณ ๋ด๋ ๋ฌด๋ฐฉํ๋ค.
์ฆ ํ์ผ ์คํธ๋ฆผ์ ์์ํ๋ ๋ฌธ์์ด์ ์ถ๋ ฅํ๋ ํจ์๋ค.
๊ทธ๋ฐ๋ฐ ์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ฅผ ๋ณด๋ฉด FILE *stream ์ด๋ผ๋ ์ด๋ฆ์ ๊ฐ์ง๊ณ ์๋ค. ์ด๋ ํ์ ๋ฌธ์์ด์ด ์ถ๋ ฅ๋ ํ์ผ ํฌ์ธํฐ๋ฅผ ์๋ฏธํ์ง๋ง ์ถ๊ฐ๋ก ์์์ stdout๊ณผ ๊ด๋ จํด์ ์ธ๊ธํ ํ์ค ์คํธ๋ฆผ์ ์ ๋ฌํ ์๋ ์๋ค. ์ฆ fprintf(stdout, "Hello World!")๋ printf("Hello World")์ ๋์ผํ ๋์์ ์ํํ๋ค.2
๋๋ถ๋ถ์ ๊ฒฝ์ฐ ํ์ผ์ ์์ํ๋ ๋ฌธ์์ด ์ถ๋ ฅ์ ์ํด ์ฌ์ฉ๋๋ค. ๋ฌธ์์ด ํ์์ ๊ทธ์ ๋ง๋ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฌํ๋ ๊ฒ์ ๊ธฐ์กด์ printf()์ ์ฌ์ฉ ๋ฐฉ์๊ณผ ๋์ผํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์ ํฐ ์ด๋ ค์์ ์๋ค. ์ด๋ ๋น์ ์์ ์ผ๋ก ๋์ํ์์ ๊ฒฝ์ฐ ์ ์์ ์ผ ๋ ๋ฐํํ๋ ์ถ๋ ฅ๋ ๋ฐ์ดํธ์ ๊ฐ์๊ฐ ์๋ ์์๋ฅผ ๋ฐํํ๋ฏ๋ก ์ด๋ฅผ ์กฐ๊ฑด๋ฌธ์ผ๋ก ๊ฒ์ฌํ์ฌ ํ์ผ์ ์ ๋๋ก ์ถ๋ ฅ์ด ๋์๋์ง ๊ฒ์ฆํ๋ ๊ฒ๋ ์ข์ ๋ฐฉ๋ฒ์ผ ๊ฒ์ด๋ค.
ํ์ง๋ง ์ผ๋ฐ์ ์ธ ์ถ๋ ฅ์ผ๋ก stdout์ ์ถ๋ ฅํ๋ ๊ฒ ์๋ ์ด์, ํ์ผ ํฌ์ธํฐ๊ฐ ์ ๋๋ก ์ด๋ ธ๋์ง ํ์ธํ๋ ๊ฒ์ด ์ค์ํ ๊ฒ์ด๋ค.
ํจ์ ์ํ์ ๋ง๊ฒ ์ ๋๋ก ์ฌ์ฉํ์์ ๊ฒฝ์ฐ์๋ ํ์ผ์ ์ ๋๋ก ์ถ๋ ฅ์ด ๋์ง ์๋๋ค๋ฉด ํ์ผ ํฌ์ธํฐ๊ฐ ์ ์ ํ ๋ชจ๋๋ก ์ด๋ฆฌ๊ณ ๋ซํ๋์ง, ๋ฌธ์์ด ์์์ ํ๋๊ทธ๋ ๋ชฉ์ ์ ๋ง๊ฒ ์ฌ์ฉ๋์๋์ง๋ฅผ ๋จผ์ ํ์ธํ๋๋ก ํ์.
#include
int main()
{
int num1;
char name[20];
FILE *fp;
fp = fopen("test.txt", "w");
printf("TYPE NAME : ");
scanf("%s", name);
printf("TYPE AGE : ");
scanf("%d", &num1);
fprintf(fp, "Hello World. My name is %s and I\'m %d years old.", name, num1);
fclose(fp);
return 0;
}
์์ ์์ ๋ฅผ ์คํํ๋ฉด ์๋์ ๊ฐ์ ๋ฐ์ดํฐ ์ ๋ ฅ ๊ณผ์ ์ ๊ฑฐ์น๊ฒ ๋๋ค.

์ด๋ก ์ธํด ์ถ๋ ฅ๋๋ ํ์ผ์ ๋ด์ฉ์ ์๋์ ๊ฐ๋ค.

fprintf(fp, "Hello World. My name is %s and I\'m %d years old.", name, num1);
์ด ๊ตฌ๋ฌธ์์ ํ ์คํธ ํ์ผ์ ๋ฌธ์์ด์ ์ ๋ ฅํ์๋ค๋ ๊ฒ์ ๋ช ์ฌํ์.
์ถ์ฒ:
https://www.ibm.com/support/knowledgecenter/ko/ssw_ibm_i_73/rtref/fprintf.htm
https://kr.mathworks.com/help/matlab/ref/fprintf.html
3. sprintf()
int sprintf(char *buffer, const char *format-string, argument-list);
์ด ์ญ์ printf()์ ๋์ผํ ๋ฌธ์์ด ์์ ๋ฐ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ๋ค. ๋ฐํ๊ฐ๋ ์ถ๋ ฅํ ๋ฐ์ดํธ์ ๊ฐ์๋ฅผ ๋ฐํํ๋ ๋ฑ ๋น์ทํ์ง๋ง ์ด๋ฒ์๋ ์ฒซ๋ฒ์งธ ๋งค๊ฐ๋ณ์๊ฐ FILE* ํ ๋ณ์์๋ fprintf()์๋ ๋ฌ๋ฆฌ char* ํ ๋ณ์๋ผ๋ ๊ฒ์ด๋ค. ์ด๋ ๋งค๊ฐ๋ณ์์ ์ด๋ฆ์ ๋ณด๋ฉด ๊ฐ์ด ์ค๊ฒ ์ง๋ง ๋ฐฐ์ด๋ก ์ด๋ฃจ์ด์ง ๋ฒํผ์ ์ผ๋ จ์ ์์ ๋ฌธ์์ด์ ์ ๋ ฅํ๋ ํจ์๋ค. ์ฆ ํ์ผ์ด๋ ํ๋ฉด์ ์ถ๋ ฅํ๋ ๊ฒ์ด ์๋๋ผ ๋ณ์(๋ฒํผ)์ ๋ฌธ์์ด์ ์ถ๋ ฅํ๋ค.
์ค์ํ ๊ฒ์ ์ฌ๊ธฐ์ ๋ฒํผ๋ ๋ฐฐ์ด๋ก ์ด๋ฃจ์ด์ ธ ์๋ค๋ ๊ฒ์ด๋ค.
์ต์ํ ์ฌ๋๋ค์ ์ ์๊ฒ ์ง๋ง String์ด๋ผ๋ ๋ฌธ์์ด ์๋ฃํ์ด ๋ฐ๋ก ์๋ C++๊ณผ๋ ๋ฌ๋ฆฌ C์ธ์ด์์๋ char ์๋ฃํ์ ํตํ์ฌ ๋ชจ๋ ๋ฌธ์์ด์ ์ฒ๋ฆฌ๊ฐ ์ด๋ฃจ์ด์ง๋ค. char* ํ์ ์ด์ฉํ์ฌ ๋ฌธ์์ด ์์๋ฅผ ์ ์ธํ๊ฑฐ๋ char[] ํ์ ์ด์ฉํ์ฌ ์์ ๊ฐ๋ฅํ ๋ฌธ์์ด์ ๋ค๋ฃจ๋ฉฐ ๋๋ถ๋ถ <string.h> ํค๋๋ฅผ ํตํด ๋ฌธ์์ด ์ฒ๋ฆฌ๋ฅผ ์ํํ๋ค. ์ด๋ ๋ฌธ์์ด ์์๋ ํ๋ฒ ์ ์ธ๋๋ฉด ์๋ก ํ ๋นํ๋ ๊ฒ ๋ง๊ณ ๋ ๋ด์ฉ์ ๋ณ๊ฒฝํ ์ ์์ผ๋ฏ๋ก ๋ฐฐ์ด๋ก ์ ์ธ๋ char ์๋ฃํ ์คํ์ผ์ ๋ฌธ์์ด์ ์ฃผ๋ก ์ฌ์ฉํ๋๋ฐ ์ด ๋ฌธ์์ด์ ์์ํ๋ ๋ฌธ์์ด์ ํ ๋นํ ์ ์๋ ํจ์๋ผ ํ ์ ์๋ค.
<string.h>์์๋ strcpy๋ฑ์ ํตํด ๋ฐฐ์ด์ ๋ฌธ์์ด์ ํ ๋นํ ์ ์์ง๋ง ์์ํ๋์ด ์์ง ์๋ค๋ ํน์ง์ด ์์๋๋ฐ ์ด sprintf()๋ฅผ ์ฌ์ฉํ๋ฉด printf()๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ฉด์ ์ถ๋ ฅํ๋ฏ์ด ๋ฐฐ์ด์ ์์ํ๋ ๋ฌธ์์ด์ ํ ๋นํ ์ ์๋ค.
#include
int main()
{
int num1;
char name[20];
char string[200];
printf("TYPE NAME : ");
scanf("%s", name);
printf("TYPE AGE : ");
scanf("%d", &num1);
sprintf(string, "Hello World. My name is %s and I\'m %d years old.", name, num1);
printf("%s", string);
return 0;
}
์์ ๊ฐ์ ์ฝ๋๋ฅผ ์คํํ๋ฉด ์๋์ฒ๋ผ ๋์ํ๋ค.

์๋ ์ฝ๋๋ฅผ ํตํด string ๋ฌธ์์ด ๋ฐฐ์ด์ ์์ํ๋ ๋ฌธ์์ด์ ํ ๋นํ์๊ธฐ์ ์์ฒ๋ผ ๋์ํ ์ ์๋ค๋ ๊ฒ์ ๊ธฐ์ตํ์.
sprintf(string, "Hello World. My name is %s and I\'m %d years old.", name, num1);
์ถ์ฒ:
https://www.ibm.com/support/knowledgecenter/ko/ssw_ibm_i_73/rtref/sprintf.htm
- ์๋ฐ(Java)์์๋ ์ด๋ฅผ ์์ ํ์ฉํ์ง ์์์ผ๋ก์จ ๊ฐ๊ฑด์ฑ์ ํฅ์์ํค๋ ๋ฐฉํฅ์ ์ฑํํ๊ณ ์๋ค. [๋ณธ๋ฌธ์ผ๋ก]
- stdout ๋ฟ ์๋๋ผ stderr์ ์ถ๋ ฅํ์ฌ ๋๋ฒ๊น ์ ์ํ ์๋ฌ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๋ ๊ธฐ๋ฒ๋ ์๋ค. ์ด๋ ๊ธฐ์กด์ stdout์ ์ ๋ ฅ ๋ฒํผ๋ฅผ ํตํ์ฌ ์ถ๋ ฅ๋๊ธฐ์ ํ๋ก๊ทธ๋จ ์ค๋ฅ ์ ์ถ๋ ฅ๋์ง ์์ ์ ์๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ stderr์ ๋ฐ๋ก ์ถ๋ ฅ๋๊ธฐ์ ํ์ธ์ด ์ฉ์ดํ๋ค๋ ์ ์ด ์๋ค. [๋ณธ๋ฌธ์ผ๋ก]