scanf("변환 명세", &변수명)
- &변수명
- scanf에서는 입력된 값을 저장할 기억장소의 주소를 명시해야 하므로 변수명 앞에 반드시 &(ampersand)를 붙여야함.
- 문자열의 경우에는 &를 붙이지 않는다. (문자열은 %s)
- 사용시 주의사항
1. 변환명세 안에 변환명세가 아닌 문자는 사용X.
- 예: scanf("키를 입력하세요: %d", &height) (X);
- 예: printf("키를 입력하세요: "); scanf("%d, &height");
2. 변환명세에서 큰 따옴표로 닫기 전에 공백문자 사용X.
- scanf("%d ", &height); (X)
- scanf("%d\t", &height); (X)
- scanf("%d\n", &height); (X)
- 이 경우 정수 입력 후 엔터키를 눌러도 %d 뒤의 공백문자 때문에 공백 문자가 아닌 데이터를 추가로 입력하여야 scanf가 완료된다.
- scanf("%d", &height); (O)
3. 변환명세에서 필드폭은 꼭 필요할 때만 사용한다.
- 예: 만약 height = 1234
- scanf("%3d", &height);
- scanf("%d", &age);
- 이러면 처음에는 123이 height가 저장되는데
- 나머지 정수 4가 age에 저장됨.
4. 자료형에 맞는 변환 지시자(d, lf, c, s 등)를 사용해야 한다.
%s를 사용한 문자열 입력
char name[10];
printf("이름은? ");
scanf("%s", name);
printf("입력한 이름: %s", name);
여러 개의 자료를 한꺼번에 입력하기
int n1, n2, n3, n4;
printf("곱셈을 하고 싶은 두 개의 정수는? ");
scanf("%d %d", &n1, &n2);
printf("\n덧셈을 하고 싶은 두 개의 정수는? ");
scanf("%d, %d", &n3, &n4);
'프로그래밍 > C,C++' 카테고리의 다른 글
C,C++ - 제어문(if) (0) | 2024.04.03 |
---|---|
C,C++ - 다양한 연산 (0) | 2024.04.03 |
C,C++ - 필드폭과 정밀도 지정 (0) | 2024.04.02 |
C, C++ - 변수 생성 (0) | 2024.04.01 |
C,C++ - 문자, 문자열 상수 표현 문법 (1) | 2024.04.01 |