일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- c++
- 프레임워크와 라이브러리의 차이
- 표준 입출력
- 알고리즘 공부방법
- Django란
- string 메소드
- 장고란
- 백준
- getline
- Django Nodejs 차이점
- 매크로
- 이분그래프
- EOF
- 연결요소
- iOS14
- vscode
- string 함수
- Django의 편의성
- correlation coefficient
- 시간복잡도
- k-eta
- 입/출력
- 2557
- 자료구조
- 엑셀
- 구조체와 클래스의 공통점 및 차이점
- double ended queue
- 입출력 패턴
- scanf
- UI한글변경
Archives
- Today
- Total
Storage Gonie
(3) scanf의 다양한 사용법 본문
반응형
*scanf는 앞뒤 공백을 무시하므로 한줄 전체를 그대로 받는 데에는 적절치 못하다.
1. 평범한 케이스
int a, b;
scanf("%d%d", &a, &b); // "4 5", "4 5", "4 \n 5 \n" 모두 인식이 가능하다.
2. 문자를 사용한 부분입력 무시
int a, b;
scanf("%d,%d", &a, &b); // "4,5" 만 인식이 가능하며, ','는 구분자 역할만 한다.
scanf("%d:%d", &a, &b); // "4:5" 만 인식이 가능하며, ':'는 구분자 역할만 한다.
printf("%d %d", a, b); // 4 5
3. 별표를 사용한 입력 무시
int a, b;
scanf("%*d %d", &a); // "3 5"를 입력하면 3은 무시되고 5가 a변수로 할당된다.
printf("%d", a); // 5
4-1. 대괄호를 사용한 일부문자 무시(대괄호 안에 나온 문자가 있는 곳까지만 입력을 받음)
char s[15];
scanf("%[abc]", s); // "abcde" -> abc "abecd" -> ab
printf("%s\n", s);
4-2. 대괄호를 사용한 일부문자 무시(대괄호 안에 나온 문자가 없는 곳까지만 입력을 받음)
char s[15];
scanf("%[^abc]", s); // "deaa" -> de "ffaf" -> ff
printf("%s\n", s);
5. EOF까지 입력받도록 할 때 사용할 수 있음
- scanf와 cin 활용가능
int a;
int b;
char s[100];
while (scanf("%[^\n]\n", s) == 1) // scanf는 int를 반환하며 입력받은 원소의 개수를 반환한다.
{
cout << s << endl;
}
while (cin >> a >> b) // 입력받은 a, b의 데이터형이 선언 타입과 일치하면 1, 하나라도 다르면 0을 반환함
{
cout << s << endl;
}
6. 문자를 n개씩 끊어서 읽어들이기
- scanf("%1d", a) 로 입력을 정수로도 읽어들일 수 있음.
char s[100];
while( scanf("%10s", s) == 1) // 한줄의 입력에서 10자씩 계속 읽어들임
printf("%s\n", s);
반응형
'알고리즘 > 문제해결을 위한 C++ 공부' 카테고리의 다른 글
(6) C++ char 형 사용법 한번에 끝내기 (1) | 2019.04.20 |
---|---|
(5) C++ string 클래스 사용법 한번에 끝내기 (4) | 2019.04.19 |
(4) C++ 한 줄 입력받기 (0) | 2019.04.19 |
(2) C++ 입출력 문법 (0) | 2019.04.18 |
(1) C++ 기초 폼 (0) | 2019.04.18 |
Comments