본문 바로가기
Programming/C

[C언어] 표준 입출력 함수 printf(), scanf()

by 고간디 2022. 3. 28.

C언어에는 표준 입출력 함수가 있습니다

사용자가 프로그램과 소통하기 위해서 사용하는 함수를 입출력 함수 (I/O 함수)라고 부릅니다

대표적으로는 printf()scanf()함수가 있는데 이 둘에 대해서 알아봅시다

 


printf( ) 함수

# include <stdio.h>

int main() {
	printf("Hello, World");
	return 0;
}

위 예제 코드에서는 Hello World를 출력합니다

 

print는 말 그대로 출력한다는 의미이고 뒤에 붙은 f는 오타가 아닌 formatted 의 약자입니다

서식화된 출력을 할 수 있다는 것을 의미합니다

여러 종류의 데이터를 서식에 맞춰서 출력할 수 있는데 서식 지정자를 통해 어떤 서식에 맞춰 출력할 지 결정할 수 있습니다

 

printf("The Number Is %d", 10);

위 코드에서 %d가 int형 데이터를 나타내기 위한 서식 지정자입니다

[C언어] #2 이스케이프 시퀀스, 서식 지정자 (tistory.com)

 

[C언어] #2 이스케이프 시퀀스, 서식 지정자

이스케이프 시퀀스 이스케이프 시퀀스(Escape Sequence)는 컴퓨터와 주변 기기의 상태를 바꾸는 데에 쓰이는 일련의 문자열입니다 이스케이프 시퀀스는 이스케이프 문자를 이용하여 이를 따르는 문

hyungin0505.tistory.com

 


Scanf()

# include <stdio.h>

int main(void) {
	int a;

	scanf_s("%d", &a);
	printf("%d", a);

	return 0;
}
더보기

위 예제 코드에서는 scanf가 아닌 scanf_s를 사용했는데 버퍼오버플로우에 대한 취약점이 있어 보안을 위해 사용한 것입니다

위 예제코드에서는 scanf로 변수 a를 입력받은 후 a를 출력하는 코드입니다

C언어는 데이터를 입력 받기 위해서는 데이터를 저장할 메모리를 할당받아야 하는데 이 할당 받을 메모리 공간을 변수 (Variable)이라고 부릅니다

 

이전 printf에서는 서식 지정자가 있었는데 scanf에서도 비슷해 보이는 게 있습니다

차이점이 있다면 & 이 붙은 건데 scanf에서는 서식 지정자가 아닌 주소 연산자라고 부릅니다

입력 받은 데이터를 주소 연산자가 지정한 변수에 저장하라는 의미입니다

728x90
반응형

댓글