Stargazer

[C++ 강좌] 1.기본 입출력 방식- std::cout, std::cin 본문

프로그래밍/C언어, C++

[C++ 강좌] 1.기본 입출력 방식- std::cout, std::cin

COM2IT 2014. 10. 11. 10:15
반응형

안녕하세요~

백빵돌이 입니다.

강좌를 시작하기 전에 말씀드릴께 있는데요

이 강좌는 윤성우 저 열혈 C++프로그래밍을

참고 하였습니다.

 

근데 이 책은 C를 안다는 가정을 두더군요

저도 마찬가지로 C는 기본으로 전부알고 있다고 가정해야 겠습니다.

전부 알려드리기엔 시간이 많이 모자르네요ㅎ

 

오늘은 간단한 출력과 입력에 대해 배워 보도록 하겠습니다.

 

자 C를 안다고 가정했으니 여러분께 묻겠습니다.

 

Q. C언어에서 기본 입출력을 담당하던 것이 무엇인가요?

 

A. 물론 printf 와 scanf 였죠

 

그렇습니다.

 

C에서는 printf와 scanf가 이걸 담당 했었죠

 

그런데 C++에서는 무엇이 이것을 담당하는가..

 

바로 std::cout , std::cin 이것이 담당을 합니다.

 

std는 머고 ::는 머고 cout은 먼가요?

 

아 그건 차차 알게 되시겠지만

 

std는 standard의 약자쯤 되신다고 생각하시고

:: <-이건 나중에 namespace 강좌를 하실때 알게 되실 것이니 지금은 모르셔도 됩니다.

cout 은 console output 의 약자로 생각하셔도 될것 같네요

(그럼 cin은 console input 겠죠?)

 

자 그럼 한국말로 바꾸어 볼까요?

std::cout 은 표준::콘솔 출력

std::cin 은 표준::콘솔 입력

아~ 그래서 std::cout(cin)이라하는 구나!

 

이 쯤 되시면 ::의 의미를 대략은 감을 잡으셨을 것 같네요

(표준)이라는 곳의 (콘솔 출력)을 가져와라

 이런 뜻으로 이해하셔도 될것같아요

(나중에 자세히 알려드릴테니 오늘은 여기까지!)

 

자 이제 이것의 사용방법을 배워보죠

 

자 다들 아실 Hello World! 아시죠?

이걸 C로 구현하면 어떻게 되죠?

 

#include <stdio.h>

 

int main(void)

{

printf("Hello World!!\n");

return 0;

}

 

이렇게 되나요?

 

그럼 이걸 이제 C++ 형식으로 바꾸겠습니다.

 

#include <iostream>

 

int main(void)

{

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

return 0;

}

 

이렇게 됩니다.

 

이제 C와 다른점을 찾을 겁니다.

 

먼저 #include <iostream> 이죠

C++에선 stdio대신 iostream를 참조합니다.

이 안에는 기본 입출력 스트림이 들어 있지요

 

그 다음은 << 이 연산자 일텐데요

이건 단순히 std::cout[표준콘솔출력]로 "Hello World!"를 보냈다고 생각 하셔도 될 것 같아요

따라서 std::cout 의 사용법은

std::cout<<"Hello World";

와 같은 형식으로 해야 한다.

 

마지막으로 std::endl은 C에서 비교하면

\n와 같은 효과죠

흔히 개행문자라고 합니다.

 

그런데 std::cin는 어떻게 사용하나요?

 

그럼 대충 유추 해보세요~

Q. std::cin의 입력 연산자는 어떻게 되겠는가?

A.출력은 << 였으니, 입력은 >> 일것이다.

 

네 맞습니다.

 

입력은

std::cin>>i; //i는 변수

와 같이 사용을 합니다.

(이때는 std::cin에서 받은걸 i로 주었다 라는 소리죠)

 

그럼 간단한 프로그램을 만들어 볼까요?

#include <iostream>

 

int main(void)

{

char number[100];

char name[200];

 

std::cout << "이름이 무엇입니까?: ";

std::cin >> name;

 

std::cout << "전화번호가 무엇입니까?: ";

std::cin >> number;

 

std::cout << std::endl;

 

std::cout << "당신의 이름은 " <<name<<" 이시군요."<<std::endl;

std::cout << "당신의 전화번호는 " << number<<"이시구요."<<std::endl;

 

return 0;

}

 

Result:

 

이름이 무엇입니까?: 백빵돌이

전화번호가 무엇입니까?: 010-1234-5678

 

당신의 이름은 백빵돌이 이시군요.

당신의 전화번호는 010-1234-5678이시구요.

 

 

자 드디어 프로그래밍도 결과도 확인 했습니다.

C++에서 C보다 좋은 것은 입출력의 포맷 형식을 지정하지 않아도

알아서 그 자료형에 맞게 입력이 된다는 것입니다.

 

예를 들어 std::cout<< i << 3.14<< "Hello World"; 처럼

변수,상수,문자열까지 전부 이런 방법으로 출력할 수 있습니다.

이런점은 편리한것 같아요

 

자 그럼 숙제를 내드리도록 하겠습니다.

 

Q.std::cout와 std::cin를 이용하여 성적 프로그램을 만들어라

성적프로그램은 2가지 이상의 과목의 점수는 입력받아야하고

평균과 총점은 기본적으로 있어야 한다.

 

그럼 다음 시간에 뵙도록 하겠습니다.

안녕히 계세요~

 

Made by fangdol

copyright fangdol

반응형
Comments