* 포맷 문자열
- 자주 사용하는 것.
: int, longlong(%lld or %I64d)
char, char*(문자열)
double
cf> %d : 정수 (10진수) }
%x : 16진수 }=> %i (세가지 혼합)
%o : 8진수 }
cf> 파일의 끝(EOF)까지 입력 받기
: scanf의 return 값 이용하기.
---------> 성공적으로 입력받은 인자의 개수.
ex> while (scanf("%d %d", &a, &b) == 2)
https://www.acmicpc.net/problem/10951
* %[]
- scanf("%[123]", a); => 1,2,3 만 입력받음
- scanf("%[^123]", a); => 1,2,3 빼고 입력받음
응용)) scanf("%[^\n]\n", s); => 한줄 전체 입력 받기.
char s[111];
int main () {
while (scanf("%[^\n]\n", s)==1) {
printf("%s\n", s);
}
but, 문제점 )) 줄의 앞과 뒤에 있는 공백을 무시하고 입력을 받게 됩니다.
sol)) getchar()
char c;
while ((c = getchar()) && c != EOF) {
printf("%c", c);
}
return 0;
!!!주의점)) fgets로 해도 가능! (but, '\n' 이것도 입력되기 때문에, 줄바꿈 없애주는 코드를 만들어줘야함.)
* scanf("%1d", &x);
: %d 앞에 숫자를 넣으면, 그 길이 만큰 입력 받을 수 있다.
???어떻때 필요한가?) 0,1로 이뤄진 인접행렬이 주어진 경우
010101
101011
cf> 인접행렬 이란?
* scanf("%10s", s);
: %s의 경우도 개수를 지정해서 입력받을 수 있다.