기본 입출력

C언어 2020. 12. 1. 23:47

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
Posted by khon98
,