도순씨의 코딩일지

C++ :: 입출력 방식 본문

𝐏𝐑𝐎𝐆𝐑𝐀𝐌𝐌𝐈𝐍𝐆/𝐂++

C++ :: 입출력 방식

도순씨 2020. 7. 21. 21:37

1. 입출력 방식

C언어는 출력 방식으로 printf 함수를 사용한다. 그렇다면 C++은 어떠한 방식으로 문장을 출력할까?

먼저 다음 코드를 살펴보도록 하자. 

 

@ 코드

1
2
3
4
5
6
7
8
9
10
#include <iostream>
 
int main(void){
    int num = 20;
    std::cout<<"Hello World!"<<std::endl;
    std::cout<<"World!"<<std::endl;
    std::cout<<num<<' '<<'A';
    std::cout<<' '<<3.14<<std::endl;
    return 0;
}
cs

 

@ 실행 결과

1
2
3
Hello World!
World!
20 A 3.14
cs

 

위의 코드와 결과를 통해서 유추해볼 수 있는 것은 다음과 같다.

 

1) 헤더파일인 #include <iostream>은 c언어에서 #include <stdio.h>와 비슷한(혹은 똑같은?) 역할을 한다.

2) std::cout<<대상 은 printf와 비슷한 역할을 한다. (단순한 출력 기능)

3) std::endl은 "\n"과 똑같은 역할이다. (자바의 System.out.println와 비슷한 역할이지만 문장 뒤에 붙는다는 차이점이 있다.) 

 

그렇다면 입력은 어떤 방식으로 이루어질까? 다음 코드를 통해서 살펴보도록 하자. 덧셈 결과를 표시하는 간단한 코드이다.

 

@ 코드

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

 

@ 실행 결과

1
2
3
첫 번째 숫자 입력: 10
두 번째 숫자 입력: 20
덧셈 결과: 30
cs

 

위 코드에 따르면 입력을 받기 위해서는 'std::cin>>입력 받은 값을 저장할 변수' 의 형식으로 이루어진다. 

C언어에서는 데이터의 형식에 따라서 %해당 형식을 달리해주어야 했다. 반면 C++은 그럴 필요가 없다.

 

1
2
char str[100];
std::cin>>str
cs

단순하게 변수명만 명시해주어도 올바른 코드이다.

 

또한 C언어에서는 지역변수의 선언이 가장 먼저 나왔었다. C++은 자바와 비슷하게 지역변수 선언이 어디에나 가능하다.

코드를 이용하여 더 자세하게 살펴보도록 하자. 다음 코드는 입력받은 두 수 사이의 모든 숫자를 더하는 코드이다. 

 

@ 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
int main(void){
    int val1, val2;
    int result = 0;
    std::cout<<"두 개의 숫자 입력: ";
    std::cin>>val1>>val2;
    
    if(val1<val2){
        for(int i = val1+1 ; i < val2 ; i++)
            result += i;
    }
    else{
        for(int i = val2+1 ; i < val1 ; i++)
            result +=i;
    }
    std::cout << "두 수 사이의 정수의 합: " << result << std::endl;
    return 0;
}
cs

 

@ 실행 결과

1
2
두 개의 숫자 입력: 0 11
두 수 사이의 정수의 합: 55
cs

 

위 코드를 통해 알 수 있는 것은 크게 두가지가 있다.

첫째, C언어에서는 for(int num = 0 ; num < 10 ; num++) 와 같은 방법으로 사용하지 않고 

 

1
2
3
int i;
for(i = val1+1 ; i < val2 ; i++)
            result += i;
cs

와 같은 방식으로 먼저 지역변수를 선언한다. 

 

둘째, 두 변수를 입력받기 위해서는 다음과 같은 형식을 사용하면 된다.

std::cin>> 입력 받고 싶은 변수 1 >> 입력 받고 싶은 변수 2

 

앞에서 간단하게 배열을 입력하고 출력하는 법을 소개했다. 이번에는 코드로 더 자세하게 살펴보도록 하자.

 

@ 코드

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int main(void){
    char name[100];
    char lang[200];
    
    std::cout<<"이름은 무엇입니까?: ";
    std::cin>>name;
    
    std::cout<<"좋아하는 프로그래밍 언어는 무엇인가요?: ";
    std::cin>>lang;
    
    std::cout<<"내 이름은 "<<name<<"입니다.\n";
    std::cout<<"제일 좋아하는 언어는 "<<lang<<"입니다"<<std::endl;
    return 0;
}
cs

 

@ 결과

1
2
3
4
이름은 무엇입니까?: dosun
좋아하는 프로그래밍 언어는 무엇인가요?: python
내 이름은 dosun입니다.
제일 좋아하는 언어는 python입니다
cs

 

위의 코드를 통해서 우리는 두 가지 사실을 알 수 있다.

첫째, "\n"은 std::endl과 같은 역할을 한다.

둘째, 앞에서 말한 것과 같이 C언어에서는 서식 문자를 통해 입력받는 변수의 형식을 명시해주어야 했다. 하지만 C++에서는 그럴 필요가 없다. 단순하게 변수명만 작성해주면 된다.

Comments