본문 바로가기

Dev/알고리즘

Scanf에 대하여 (백준 10953)

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