* %[ ] = [ ] 안의 서식만 입력받겠다는 뜻.
다른 서식이 입력되면 더이상 입력을 받지 않는다.
ex)
%[12345]: 12345만 입력받겠다.
%[1-9]: 1~9 사이의 숫자만 입력받겠다.
%[abc]: abc만 입력받겠다.
%[a-z]: a~z 사이의 알파벳만 입력받겠다.
* ^를 사용하여 ^뒤의 문자열을 제외한 나머지만 입력받을 수도 있다.
한마디로 ^ 뒤의 문자가 나오면 입력이 종료된다.
ex)
%[^,]: ,가 나오면 입력 종료
%[^\n]: 개행이 나오면 입력 종료(개행 빼고 모두 입력받음.)
<활용>
scanf_s("%s", string, 64)에 "동해물과 백두산이"를 입력하면 "동해물과"만 출력된다.
scanf_s("%[^\n]", string, 64)에 "동해물과 백두산이"를 입력하면 "동해물과 백두산이" 전부 출력된다.
* %와 [ ] 사이에 알파벳을 넣어 원하는 자료형으로 받을 수도 있다.
ex)
%d[^,]: ,를 제외한 문자열을 정수로 입력받겠다.
* 한 번에 여러 문자열을 제외할수도 있다.
ex)
%[^,^ ]: 공백과 쉼표를 제외하고 입력받음
#include <stdio.h>
#include <iostream>
int main()
{
char string[64] = {};
std::cout << "콤마(,)를 입력하면, 그 전까지 입력받습니다" << std::endl;
scanf_s(" %[^,]", string, 64);
std::cout << string << std::endl;
return 0;
}
'C++ TIPS' 카테고리의 다른 글
실수로 인해 빌드될 때 취소하는 법 (0) | 2022.05.30 |
---|---|
함수의 const (0) | 2022.04.18 |
헤더의 순환참조 막기 - 전방선언 (0) | 2022.04.11 |
비주얼 스튜디오 팁: 헤더에 선언한 클래스 cpp에서 정의 빠르게 만들기 (0) | 2022.04.07 |
#define을 활용하여 만드는 편리한 매크로들 (0) | 2022.04.07 |