scanf 정리
2019. 7. 30. 23:57ㆍPL/C++
1. %i
10, 8, 16진수를 모두 처리할 수 있다
앞에 0을 붙이고 숫자를 입력하면 8진수
앞에 0x를 붙이고 숫자를 입력하면 16진수로 입력이 된다
#include <stdio.h>
int main(void) {
int x;
scanf("%i", &x);
printf("%d\n", x);
return 0;
}
2. \n과 공백
scanf 안에 \n과 공백을 입력하면, 모든 줄바꿈과 공백을 다음 입력이 들어올 때까지 "\n과 공백"이 처리하게 된다.
3
A B C
D E F
G H I
다음 입력을 받고 아스키코드 값으로 출력하는 코드를 작성한다면, 위를 이용해 2가지 방식으로 구현할 수 있다. 두번째 같은 경우는 마지막에 문자 하나를 더 작성해야만 프로그램이 종료된다
단, freopen으로 읽을 때는 EOF까지 읽기 때문에 상관이 없다
#include <stdio.h>
int main(void) {
int n;
scanf("%d", &n);
while (n--) {
char x, y, z;
scanf(" %c %c %c", &x, &y, &z);
printf("%d %d %d\n", x, y, z);
}
return 0;
}
#include <stdio.h>
int main(void) {
int n;
scanf("%d\n", &n);
while (n--) {
char x, y, z;
scanf("%c %c %c\n", &x, &y, &z);
printf("%d %d %d\n", x, y, z);
}
return 0;
}
3. %[]
%[] : [] 안에 있는 입력만 받게 된다
%[^] : [] 안에 있는 입력을 제외하고 받게 된다
'PL > C++' 카테고리의 다른 글
fgets, scanf로 대체하기 (0) | 2019.08.01 |
---|---|
string::compare (0) | 2019.08.01 |
strtok (0) | 2019.07.27 |
strstr (0) | 2019.07.27 |
fgets와 fputs (0) | 2019.07.26 |