2021. 12. 12. 23:17ㆍC
백준 11718번 풀다가 모르는 부분이어서 기록하며 공부.
표준입력함수 scanf()
형식은 int scanf(const char *, 가변인자);
리턴 값
성공 시 : 입력받은 data 개수
실패 시 : EOF(-1)
scanf 문을 쓸 때 공백이 있는 문자열을 입력 받을 수 있다. 문자열 입력 조건을 통해 처리하는 방법이다.
[]을 통하여 문자열 조건을 넣을 수 있다.
[예제]
char str[80];
scanf("%[12345]s",str);
// 입력이 "4567"이면 str에 "45"가 저장된다.
char str[80];
scanf("%[^12345]s",str);
//입력이 "6745"이면 str에 "67"만 읽힌다.
scanf("%[0-9]s",str);
//0-9 는 0123456789 와 동일하다.
char c[101];
scanf("%[^\n]s",c);
// ^ 는. [] 안 이외의 문자만 입력을 허용한다는 의미이다.
// 위의 코드는 '\n'(new line) 문자를 만나기 전까지 입력을 받는다는 뜻이다.
char str[80];
scanf("%79[^\n]s",str);
// '\n'(new line) 문자를 만나기 전까지 입력을 받되, 79자까지만 입력을 받는다.
char str[80];
scanf("%[a-zA-Z]s",str);
// 영문자만 입력을 받는다.
입력 버퍼를 비우는 이슈에서 scanf를 통해 입력받지 않은 개행문자를 입력받아 버퍼를 비우기 위해 getchar() 를 사용한다.
'C' 카테고리의 다른 글
GetStdHandle 함수, SetConsoleTextAttribute 함수 (0) | 2022.01.06 |
---|---|
C언어 가변인수함수(printf 등) (0) | 2021.12.15 |
c언어 배열초기화, 비트연산자 (0) | 2021.12.15 |
Error - scanf 반환값이 무시되었습니다. (0) | 2021.09.07 |