C의 표준 입출력 함수
#include <stdio.h>
int main()
{
int a = 0;
printf("Hello world!\n");
scanf_s("%d", &a);
return 0;
}
C 표준 입출력 함수로 printf 함수(출력)와 scanf 함수(입력)가 있습니다. 이 함수들을 사용하기 위해서는 코드의 윗단에 #include <stdio.h>라고 선언해두어야 합니다.
#include는 전처리기로 간단하게 설명하자면 #include 다음에 오는 파일을 포함하겠다는 의미입니다. 여기서 뒤에 오는 파일은 <stdio.h>이며 stdio는 Standard Input Output의 줄임말이고 .h는 헤더 파일(Header file)임을 뜻합니다.
해당 헤더 파일안에 printf 함수와 scanf 함수, 이 외에도 여러가지 함수들이 구현되어 있어서 include만 시켜주면 따로 구현하지 않아도 사용할 수 있습니다.
printf 함수
#include <stdio.h>
int main(void)
{
int a = 10;
printf("Hello world!\n");
printf("Hello world!, %d", a);
return 0;
}
printf 함수는 C 언어에서 사용되는 표준 출력 함수입니다. 기본적으로 printf( "출력하려는 문자열" )의 구조로 이루어져 있으며 필요에 의해 추가 인자(argument)를 여러 개 넣을 수도 있습니다. 추가 인자는 제한적이지않고 여러개 넣을 수 있습니다. ( 수천개 넣으면 어떻게 될지 모르겠지만 수백개 정도는 넣어본 결과 문제 없었습니다. )
출력하려는 타입에 맞게 '형식 지정자'를 사용해야합니다.
scanf 함수
#include <iostream>
using namespace std;
int main(void)
{
int input = 0;
int input2 = 0;
scanf("%d", &input);
scanf("%d %d", &input, &input2);
scanf_s("%d", &input);
return 0;
}
scanf 함수는 C 언어에서 사용되는 표준 입력 함수입니다. 입력 받고자하는 타입에 맞춰서 형식 지정자를 사용하여 받아야합니다. printf와 마찬가지로 인자를 여러개 추가 할 수 있으며, 타입에 따라 다르지만 정수 같은 경우 space bar를 기준으로 나눠서 한줄로 입력 받을 수 있습니다. ( ex. 10 20을 입력하면 10과 20이 저장됩니다. )
그리고 scanf_s라는게 보이는데 Visual studio 버전마다 다르지만 안전성을 위해 scanf_s를 사용하도록 컴파일 에러가 나는 경우가 있습니다. 그러므로 scanf_s를 사용하거나 scanf 사용 설정을 해주면 컴파일 에러 없이 사용할 수 있습니다.
형식 지정자
( 출처 msdn : https://docs.microsoft.com/ko-kr/cpp/c-runtime-library/format-specification-syntax-printf-and-wprintf-functions?view=msvc-160 )
printf 함수와 scanf 함수를 사용하면서 형식 지정자를 사용해야 한다고 얘기했습니다. 이것은 내가 입력 혹은 출력하려는 값을 어떤 형태로 할 것인가에 대해 컴퓨터에게 알려주기 위한 것입니다. c는 char, d는 decimal, f는 float, ... 이런 식으로 구성되어 있으니 굳이 전부 외우지 않고 기본적인 것 정도만 알고 필요하면 찾아서 사용하면 됩니다.
'C & C++' 카테고리의 다른 글
C/C++ 기초 - 포인터 ( Pointer ) (0) | 2021.10.14 |
---|---|
C/C++ 기초 - 배열 ( Array ) (0) | 2021.10.12 |
C/C++ 기초 - 문 (Statement) (0) | 2021.10.10 |
C/C++ 기초 - 연산자 ( Operator ) (0) | 2021.10.10 |
C/C++ 기초 - 자료형 ( Data type ) (0) | 2021.10.06 |