scanf( )
- C언어에서 특정한 변수에 값을 넣기 위해서 scanf( )를 사용
- Visual Studio는 기본적으로 취약한 함수를 사용할 수 없도록 제한함
- _CRT_SECURE_NO_WARNINGS를 적용
- Visual Studio를 제외한 대부분의 IDE에서는 scanf( )를 사용해도 컴파일이 진행됨
scanf( )를 이용할 때 &를 이용하는 이유
- &는 특정한 변수의 주소를 의미
- 실제로 컴퓨터는 특정한 메모리에 주소에 접근하여 데이터를 수정하므로 &를 이용하는 것
- 그렇다면 메모리 주소에 얼마만큼의 크기로 데이터를 쓸지 경정해야 함
형식 지정자
int (4 Bytes) - %d를 이용해서 정수형 데이터를 입력 및 출력
long long (8 Bytes) - %lld를 이용해서 큰 정수형 데이터를 입력 및 출력
double (8 Bytes) - 입력 시 %lf, 출력 시 %f로 큰 실수형 데이터를 처리
float (4 Bytes) - %f를 이용해서 실수형 데이터를 입력 및 출력
string (제한 없음) - %s를 이용해서 문자열 데이터를 입력 및 출력
char (1 Bytes) - %c를 이용해서 문자 데이터를 입력 및 출력
1.
double형 데이터는 왜 입력받을 때는 %lf를 사용하고, 출력할 때는 %f를 사용할까?
- 입력을 받을 때는 특정 주소에 특정 크기만큼 입력을 수행함
- 다만 출력할 때는 주소가 아닌 값 자체를 이용해 출력하므로 구체적인 크기를 지정하지 않아도 됨
2.
% 자체를 문자로 출력하고 싶으면?
- '%%'를 입력하여 출력할 수 있음
실수형을 입력받아서 소수점 셋째 자리까지 출력하기
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<cstdlib>
int main(void) {
double a;
scanf("%lf", &a);
printf("%.2f", a); // .2f를 입력하면 소수점 둘째자리 까지 출력이 됨
system("pause");
return 0;
}
두 숫자를 입력받아 순서 바꾸어 출력하기
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<cstdlib>
int main(void) {
int a, b;
scanf("%d %d", &a, &b);
printf("%d %d", b, a);
system("pause");
return 0;
}
한 자리 씩 끊어서 입력받기
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<cstdlib>
int main(void) {
int a, b, c;
scanf("%1d%1d%1d", &a, &b, &c);
printf("%d %d %d\n", a, b, c);
system("pause");
return 0;
}
- C언어에서 입력받거나 출력할 때는 형식 지정자를 적절히 따라야 함
- printf( )는 단순히 데이터를 넘기고, scanf( )는 입력받을 주소를 나타내기 위해 &를 사용
'C언어' 카테고리의 다른 글
조건문 (0) | 2020.12.03 |
---|---|
연산자 (0) | 2020.12.02 |
Visual Studio 역슬래시 (0) | 2020.12.01 |
변수와 상수 (0) | 2020.12.01 |
C언어 프로그래밍 개발환경 구축 (0) | 2020.11.28 |