근본있는 블로그

C++의 입출력 방식 본문

C++

C++의 입출력 방식

ggbon 2019. 3. 22. 14:54
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int main() {
    int val;
    std::cout << "첫번째 숫자 입력: ";
    std::cin >> val;
 
    int val2;
    std::cout << "두번째 숫자 입력: ";
    std::cin >> val2;
 
    int result = val + val2;
    std::cout << "덧셈결과: " << result << std::endl;
    return 0;
 
}    
cs


 이 코드 하나로 기존 C언어와 C++언어의 입출력문의 차이를 알아보겠습니다.


1. 헤더파일 선언문

 기존에 C언어에서는 <stdio.h>로 헤더파일을 포함시켜 입출력을 위한 printf와 scanf함수를 호출하였을 것입니다. C++ 에서는 C언어와 다르게 입출력을 위해 printf와 scanf를 사용하지 않고 std::cout, std::endl, std::cin 등을 사용할 것이고 이 함수들은 <iostream>이라는 헤더파일에 포함되어 있습니다.

 참고로 C++에서는 .h라는 헤더파일의 확장자는 생략하기로 하였습니다.


2. std::cout

 C언어에서는 printf('출력대상');과 같은 식으로 데이터 출력을 명령하였다면 C++에서는 다음과 같은 방식을 사용한다.

 std::cout <<'출력대상';

 std::cout << '출력대상1' << '출력대상2' << '출력대상3'; 와 같은 식으로 둘 이상의 데이터 출력을 명령하는 것입니다.

 C언어에서 printf를 실행했을 때를 기억해보죠. 우리는 출력 대상에 따라서 %d, %s 같은 형식으로 출력포맷을 지정해줘야 했지만 위의 예제를 보면C++에서는 별도의 포맷 지정없이 적절한 출력이 이루어짐을 알 수 있습니다.


3.std:endl

 <<연산자를 이용한 std::endl의 출력은 개행으로 이어집니다. 주어진 예제에서 << std::endl을 지우고 실행해 본다면 차이를 알 수 있을 것입니다.


3.std::cin

 C++에서는 키보드로부터의 데이터 입력을 위해서 std::cin >> '변수';와 같은 형식을 취합니다.

 6행을 C언어에서는 scanf("%d", &val1);와 같은 식으로 표현해야 했습니다. 출력과 마찬가지롤 별도의 출력포맷을 지정해줘야했죠. 하지만 출력과 마찬가지로 입력에서도 C++는 별도의 포맷지정이 필요하지 않습니다. 

 연속적인 데이터의 입력을 요구하고 싶다면 다음과 같이 사용할 수도 있습니다.

 std::cin >> '변수1' >> '변수2';


정리

1. C++에서는 기본입출력을 위해서 <iostream>이라는 헤더파일을 포함시킨다!

2. 출력: std::cout

   개행: std::endl

   입력: std::cin

3. C++의 입출력에서는 별도의 포맷지정이 필요하지 않다!


출저: 열혈 C++ 프로그래밍 - 저자 윤성우