scanf 알아보기
C언어를 처음 배울 때 표준입력으로 scanf를 사용한다.
당시에는 단순히 scanf("%d", &a); 수준의 scanf만 사용하였다.
하지만, 10953번 문제를 풀면서 scanf 함수에 대해 더 깊게 알아보았다.
int scanf( const char *format, ...);
1. scanf 는 \n, ' ', \t 기준으로 문자를 분리
#include<cstdio> using namespace std; int main(){ int a,b; scanf("%d%d",&a,&b); printf("%d %d\n",a,b); return 0; }
입력 : 4 (공백) 5
입력 : 4 (Tab) 5
입력 : 4 (엔터) 5
출력 : 4 5
2. 단일문자로 구분
scanf("%d,%d",&a,&b); scanf("%d*%d",&a,&b); scanf("%d(%d",&a,&b); scanf("%d:%d",&a,&b);
입력 : 4,5
입력 : 4*5
입력 : 4(5
입력 : 4:5
3. * 이용
입력을 무시하고 싶을 때 사용
#include<cstdio> using namespace std; int main(){ int a,b; scanf("%*d %d",&a); printf("%d\n",a); return 0; }
입력 : 3 4
출력 : 4
4. 대괄호 이용
대괄호는 대괄호 안의 문자세트에 나타나지 않는 첫 번째 문자 까지 입력 받는다.
#include<cstdio> using namespace std; int main(){ char c[15]; scanf("%[abc]",c); printf("%s\n",c); return 0; }
입력 : abcde
출력 : abc
입력 : abbc
출력 : abbc
입력 : def
출력 : 없음
5. 캐럿(^)
효과를 반전시킨다.
#include<cstdio> using namespace std; int main(){ char c[15]; scanf("%[^abc\n]",c); printf("%s\n",c); return 0; }
입력 : def
출력 : def
입력 : abc
출력 : 없음
'Dev > 알고리즘' 카테고리의 다른 글
[dijkstra] 백준 1753 파이썬 (0) | 2021.11.01 |
---|---|
[BFS] 백준 7576 토마토 설명 (python) (0) | 2021.10.27 |
[DFS] 기본 (0) | 2021.10.21 |
계산 시간 (백준 10818) (0) | 2018.05.02 |
소수 구하기 (에라토스테네스의 체) (0) | 2018.04.22 |