<scanf()>
- C언어에서 특정한 변수에 값을 넣기 위해서 scanf()를 사용한다.
- 취약한 함수로 분류 되어 있어 Visual Studio 에서는 사용할 수 없도록 제한되고 있다.
(visual studio를 제외한 대부분의 IDE에서는 scanf()를 사용해도 컴파일이 진행된다.)
- 사용하고 싶으면 맨위에(main밖에) #define _CRT_SECURE_NO_WARNINGS
를 적어주면 적용가능하다.
<&>
- &는 특정한 변수의 주소를 의미한다.
- 앰퍼샌드(ampersnad)라고도 한다. (포인터에서 더 자세하게 다룸)
- 이 기호를 사용함으로서 실제로 컴퓨터가 특정한 메모리 주소에 접근해서 데이터를 쓸 수 있도록
(scanf()의 기능을 수행할 수 있도록) 하기 위해서 사용한다.
<형식 지정자>
Int- %d로 정수형 데이터를 입출력
long long- %lld로 '큰' 정수형 데이터를 입출력
double- 입력시:%lf 출력시:%f 로 큰 실수형 데이터를 처리
(입력을 받을 때는 특정 주소에 특정 크기만큼 입력을 수행.
다만, 출력할 때는 주소가 아닌 값 자체를 이용해 출력하므로 구체적인 크기를 지정하지 않아도 된다.)
float- %f로 실수형 데이터를 입출력
string-%s로 문자열 데이터를 입출력
char-%c로 문자 데이터를 입출력
- %자체를 문자로 출력하고 싶으면?
: "%%"를 입력하여 출력할 수 있다.
(예제1) 실수형을 입력 받아서 소수점 둘째 자리까지 출력하기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
double a;
scanf("%lf", &a);
printf("%.2f\n", a);
system("pause");
return 0;
}
(해설) print 줄 %f앞에 .2를 붙이면 소수점셋째자리에서 반올림하여 둘째자리까지 출력하게 하는 방법이다. 원주율 구할 때 쓰면 되겠다.
(예제2) 두 숫자를 입력 받아 순서 바꾸어 출력하기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int a,b;
scanf("%d %d", &a, &b);
printf("%d %d\n",b,a);
system("pause");
return 0;
}
(해설) %d &d를 연달아 써주되, 출력문에서 a,b자리를 b,a로 바꿔주기만 하면 된다.
(예제3)한 자리 씩 끊어서 입력 받기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int a, b, c;
scanf("%1d%1d%1d", &a, &b, &c);
printf("%d %d %d\n", a, b, c);
return 0;
}
(해설) scanf문에서 “%1d%1d%1d” 를 연달아 써주면 된다.
(정리)
1) C언어에서 입력 받거나 출력할 때는 형식 지정자를 적절히 따라야 한다.
2) printf()는 단순히 데이터를 넘기고, scanf()는 입력 받을 주소를 나타내기 위해서 꼭 &를 사용한다.
'컴퓨터 공부 > © C' 카테고리의 다른 글
[C언어] 6. 배열 (0) | 2021.01.28 |
---|---|
[C언어] 5. 함수 (0) | 2021.01.27 |
[C언어] 4. 반복문 (0) | 2021.01.27 |
[C언어] 3. 조건문 (0) | 2021.01.27 |
[C언어] 2. 연산자 (0) | 2021.01.27 |