* 포맷 문자열

 

- 자주 사용하는 것.

: 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의 경우도 개수를 지정해서 입력받을 수 있다.

 

 

 

 

 

 

+ Recent posts