알음알음-IT/개발_기초_코딩_C++

C++ 공부하기 - 1.C++의 입출력

구구닥스 2020. 2. 4. 14:25

C++은 C언어를 포함한다? 라고 말할 수 있습니다. 그렇기에 C언어로 작성된 대부분의 프로그램은 C++ 컴파일러로 컴파일이 가능하기도 하지요

허나 C++은 C언어가 가지고 있지 않는 객체 지향적 특징등이 있습니다.

 

처음 배우는 만큼 간단한 입출력에 대해서 배워보겠습니다.

 

처음 C언어를 배울 때 Hello World! 를 출력했었습니다. 기억 하시나요?

그래서 C++에서도 Hello World!를 출력해보겠습니다.

 

#include <iostream>

 

int main(void)

{

std::cout<<"Hello World!"<<std::endl;

std::cout<<"Hello"<<"World!"<<std::endl;

 

return 0;

}

 

입력 하면 

 

여기서 확인할 수 있는 사항 몇가지가 있습니다.  

● <stdio.h>   →   <iostream>  C언어에서 표준 입출력 헤더파일이 stdio.h였다면  C++에서는 iostream 입니다. 단, C++에서 표준 헤더파일의 확장자는 생략 가능합니다.

●printf → std::cout 과 << 로 대체 되었습니다.  위 코드를 보면 <<연산자는 연이은 표현이 가능합니다. 즉 std::cout<<'출력 1'<<'출력 2'<<'출력 3'; 

●\n 대신 std::endl 로 개행을 대신합니다.

●코드에는 없지만 std::cout<<"출력대상";  출력대상에는 공백, 정수와 실수, 문자열, 변수도 올 수 있다, C언어에서는 별도로 %d와 같은 서식문자를 이용한 지정이 있어야 출력외 되었지만 C++은 별도의 서식문자를 쓰지 않아도 작동한다.

 

출력을 해봤으니 이제 입력을 해보겠습니다.

#include <iostream>

 

int main(void)

{

int num1;

std::cout<<"첫번째 숫자: ";

std::cin>>num1;

 

int num2;

std::cout<<"두번째 숫자: ";

std::cin>>num2;

 

std::cout<<"입력된 숫자값: "<<num1<<", "<<num2<<std::endl;

 

return 0;

}

 

결과는

 

이렇게 나옵니다.

●scanf를 대신하여 std::cin>>가 사용되었습니다.

●변수의 선언이 어디에서든 가능합니다.

●실수형 덧셈을 쓰고자 할 때는 int가 아닌 double로 변수를 선언해주면 됩니다. C++에서는 데이터의 입력도 출력과 똑같이 별도의 포맷지정이 필요 없습니다.

●출력과 마찬가지로 연속적인 데이터 입력도 가능합니다. std::cin>>변수>>변수   두 변수의 경계는 엔터나 스페이스바 탭으로 나타내는 공백으로 나눠집니다.

 

이번에는 배열 기반의 문자열 입출력을 보겠습니다.

 

#include <iostream>

 

int main(void)

{

char name[100];

char food[100];

 

std::cout<<"이름 : ";

std::cin>>name;

 

std::cout<<"좋아하는 음식 : ";

std::cin>>food;

 

std::cout<<"이름은 "<<name<<"이고"<<std::endl;

std::cout<<"좋아하는 음식은 "<<food<<"입니다."<<std::endl;

 

return 0;

}

 

결과는

입니다.

 

문자열은 보시는 것과 같이 특별한게 없습니다.