C++ TIPS

서식 지정자 - %[ ] 의 의미

hyrule 2022. 4. 15. 17:17

* %[ ] = [ ] 안의 서식만 입력받겠다는 뜻.

다른 서식이 입력되면 더이상 입력을 받지 않는다.

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;
}