%d :정수형 데이터 출력이라고 되있는 4장입니다.
%d는 서식 무자라고 합니다. 서식문자는 서식에 맞춰 작성해야하는데 아래 코드를 보시죠.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#include<cstdio>
int main(void)
{
printf("34+56\n");
printf("%d\n",34+56);
printf("%d + %d = %d\n", 34, 56, 34 + 56);
printf("34-56\n");
printf("%d\n",34-56);
printf("%d - %d = %d\n", 34, 56, 34 - 56);
printf("34*56\n");
printf("%d\n",34*56);
printf("%d * %d = %d\n", 34, 56, 34 * 56);
printf("34/56\n");
printf("%d\n",34/56);
printf("%d / %d = %d\n", 34, 56, 34 / 56);
return 0;
}
|
cs |
를 입력하면
34+56
90
34 + 56 = 90
34-56
-22
34 - 56 = -22
34*56
1904
34 * 56 = 1904
34/56
0
34 / 56 = 0
가 출력된다.
이를 해석하면 5번째 줄은 문자열 안의 내용이 그대로 콘솔 화면에 출력된다.
6번쨰 줄은 더한값이 %d에 출력이되고
7번쨰 줄은 첫번째 %d에 첫번째 정수인 34가 두번째%d에 두번째 정수인 56 그리고 마지막 %d에 더한값인 90이 출력된다. 나머지는 이와 같은 방식으로 +는 더하고 -는 빼고 *곱하고/는 나눗셈을한다 /는 나눈 몫의 연산결과를 가져오기 떄문에 몫인 0만 가져온다. (참고로 나머지는 %이다 %d랑 착각하지말자!!)
이걸 통해 %d는 출력문자 ,34, 56, 34+56로 구분되며 각각 %d안에 대응된다는걸 알수있다.
그럼 화면에 \나 %를 출력하기 위해서는 어떻게 해야할까 그건 아래 표를 보면된다.
| Escape문자 | 기능 | ASCII |
| %% | 화면에%출력 | 37 |
| \\ | 화면에\출력 | 92 |
| \' | 화면에 '출력 | 39 |
| \" | 화면에"출력 | 34 |
정수형 포맷팅
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#include<cstdio>
int main(void)
{
printf("123 ");
printf(" 678\n");
printf("1234567890\n");
printf("ABC%4dDEF\n",123);
printf("ABC%-4dDEF\n",123);
printf("ABC%dDEF\n",123);
return 0;
}
|
cs |
123 678
1234567890
ABC 123DEF
ABC123 DEF
ABC123DEF
가 나온다.
5번째 줄에서 123을 출력하고 띄어쓰기 한번 6번쨰줄은 띄어쓰기 한번에 678을 쓴다. \n에의해 줄내림현상이 생기고 123456789을 출력하고 \n에 의해 줄내림 현상이 생긴다.
8번째 줄은 ABC가 출력되고 4칸의 띄어쓰기가 생긴다. 4칸만큼의 칸이 확보되는것이다. 4칸의 자리에서 123을 오른쪽 정렬하여 출력하는 것이다. 바로 다음에 이어서 DEF를 출력하는게 8번쨰 줄이다.
| A | B | C | 1 | 2 | 3 | D | E | F |
9번째 줄은 8번째 줄과 동일하다 하지만 %와 d사이에 음의 정수를 붙여서 왼쪽 정렬을 하게하는것이다
| A | B | C | 1 | 2 | 3 | D | E | F |
10번째 줄은 출력하고자 하는 숫자는123 3칸을 필요로하는 3자리 정수인데 %d = %1d 한칸을 요구한다 . 자릿수가 필요로하는 정수보다 작을떄는 자동으로 %3d의 형식으로 출력된다.
| A | B | C | 1 | 2 | 3 | D | E | F |
오늘의 연습문제
1. %d 3개를 이용하여 10 % 8 = 2가 출력되도록 하기
2. 각 줄에 출력되는 정수는 서식 문자의 자릿수10자리에 맞춰서 오른쪽 정렬하여 출력하여라.
1
11
111
1111
11111
----------
12345
3.각 줄에 출력되는 정수는 서식 문자의 자릿수5자리에 맞춰서 오른쪽 정렬하여 출력하여라.
22222
2222
222
22
2
-----
19754
1번답
#include <cstdio>
int main(void)
{
printf("%d %% %d = %d\n", 10, 8, 10 % 8);
return 0;
}
2번답
#include <cstdio>
int main()
{
printf("%10d\n",1);
printf("%10d\n",11);
printf("%10d\n",111);
printf("%10d\n",1111);
printf("%10d\n",11111);
printf("----------\n");
printf("%10d\n",1+11+111+1111+11111);
return 0;
}
3번답
#include <cstdio>
int main(void)
{
printf("%5d\n",22222);
printf("%5d\n",2222);
printf("%5d\n",222);
printf("%5d\n",22);
printf("%5d\n",2);
printf("-----\n");
printf("%5d\n",22222-2222-222-22-2);
return 0;
}
'스터디' 카테고리의 다른 글
| C++ 6번째 코딩마법서 (변수) (0) | 2020.09.07 |
|---|---|
| C++ 5번째 수업 코딩마법서(실수형 데이터 출력) (0) | 2020.09.04 |
| C++3번째수업 코딩마법서 (0) | 2020.09.02 |
| C++ 2번째 수업 (0) | 2020.09.01 |
| C++개발환경 세팅하기 (0) | 2020.08.29 |