C에서 C++로 넘어오면서, printf와 scanf를 대신하는 입출력 방식을 사용하게 된다.
printf를 대신하는 cout, scanf를 대신하는 cin이 그 역할을 대신합니다.
이 두개를 사용하기 위해서는 iostream의 헤더파일을 선언해야지 사용이 가능하며, 파일의 확장자는 반드시 .cpp로 해야만 C++의 문법규칙을 적용한 컴파일러로 컴파일이 된다.
std::cout
c++에서 printf를 대신하여 출력합니다.
#include <iostream>
int main()
{
int num = 4;
std::cout << "Hello World";
std::cout << "num의 값은?" << num;
return 0;
}
결과
Hello World
num의 값은?4
std::endl
cout만 사용하게 되면, 다음 줄로 띄어쓰기는 어떻게 하는거지? 라는 생각을 하게 된다.
C언어에서는 \n가 있다면 C++에서는 std::endl를 붙여주면 된다.
근데 놀랍게도 \n 써도 다음줄로 띄우기가 가능하다.
#include <iostream>
int main()
{
int num = 4;
std::cout << "Hello World"<<std::endl;
std::cout << "num의 값은?" << num;
return 0;
}
결과
Hello World
num의 값은?4
위와 동일한 코드이지만, 첫번째 줄에 endl를 붙여 다음 줄 부터 시작하는 것을 확인할 수 있다.
std::cin
cin은 scanf를 대신하는 입력문 역할을 대신한다. std::cout는 출력 연산자(<<)를 사용한다면, std::cin은 입력 연산자(>>)를 사용합니다.
#include <iostream>
int main()
{
std::cout << "값을 입력하세요 : ";
int num;
std::cin >> num;
std::cout << "입력된 값은 : " << num << std::endl;
return 0;
}

using namespace std
cout와 endl, cin의 사용법은 알았으나.. 이 앞에 std::을 계속 붙이면서 코딩작업은 힘든 일이다. 그래서 우리는 namespace를 사용하여 std를 선언해줍니다.
같은 코드라도
#include <iostream>
using namespace std;
int main()
{
cout << "값을 입력하세요 : ";
int num;
cin >> num;
cout << "입력된 값은 : " << num << endl;
return 0;
}
이렇게 std를 생략하고 cout와 cin, endl를 사용할 수 있다.
예제 풀이
1. 사용자로부터 총 5개의 정수를 입력 받아서, 그 합을 출력하는 프로그램을 작성해 보자. 단, 프로그램의 실행은 다음과 같이 이뤄져야 한다.
[실행의 예]
1번째 정수 입력 : 1
2번째 정수 입력 : 2
3번째 정수 입력 : 3
4번째 정수 입력 : 4
5번째 정수 입력 : 5
합계 : 15
풀이
#include <iostream>
using namespace std;
int main(void)
{
int num = 0; //입력값
int result = 0; //합치기
for (int i = 1; i < 6; i++)
{
cout << i << "번째 정수 입력 : ";
cin >> num;
result += num;
}
cout << "합계 : " << result << endl;
return 0;
}

2. 프로그램 사용자로부터 이름과 전화번호를 문자열의 형태로 입력 받아서, 입력 받은 데이터를 그대로 출력하는 프로그램을 작성해 보자.
#include <iostream>
using namespace std;
int main(void)
{
char name[100];
char phone[200];
cout << "이름이 뭔가요? : ";
cin >> name;
cout << "전화번호가 뭔가요? : ";
cin >> phone;
cout << "이름 : " << name << endl;
cout << "전화 번호 : " << phone << endl;
return 0;
}

3. 숫자를 하나 입력 받아서 그 숫자에 해당하는 구구단을 출력하는 프로그램을 작성해 보자. 예를 들어서 사용자가 5를 입력한다면 구구단에서 5단을 출력해야 한다.
#include <iostream>
using namespace std;
int main(void)
{
int num;
int result;
cout << "숫자를 하나 입력하세요 : ";
cin >> num;
for (int i = 1; i < 10; i++)
{
result = i * num;
cout << num << " * " << i << " = " << result << endl;
}
return 0;
}

4. 판매원들의 급여 계산 프로그램을 작성해 보자. 이 회사는 모든 판매원에게 매달 50만원의 기본 급여와 물품 판매 가격의 12%에 해당하는 돈을 지급한다. 예를 들어서 민수라는 친구의 이번 달 물품 판매 금액이 100만원이라면, 50+100X0.12 = 62, 따라서 62만원을 급여로 지급 받는다. 단, 아래의 실행의 예에서 보이듯이 이러한 급여의 계산은 -1이 입력될 때까지 계속 되어야 한다.
[실행의 예]
판매 금액을 만원 단위로 입력(-1 to end) : 100
이번 달 급여 : 62만원
판매 금액을 만원 단위로 입력(-1 to end) : 200
이번 달 급여 : 74만원
판매 금액을 만원 단위로 입력(-1 to end) : -1
프로그램을 종료합니다.
#include <iostream>
using namespace std;
int Money(int money)
{
return (int)(50 + money * 0.12);
}
int main(void)
{
int num;
while (1)
{
cout << "판매 금액을 만원 단위로 입력 (-1 to end) : ";
cin >> num;
if (num == -1)
break;
cout << "이번 달 급여 : " << Money(num) << "만원" << endl;
}
cout << "프로그램을 종료합니다." << endl;
return 0;
}

'코딩 > C++' 카테고리의 다른 글
| 05. 자료형 bool (1) | 2022.07.12 |
|---|---|
| 04. 이름공간(namespace) (1) | 2022.07.08 |
| 03. 인라인 함수 (2) | 2022.06.30 |
| 02. 매개변수의 디폴트 값 (3) | 2022.06.22 |
| 01. 함수 오버로딩 (0) | 2022.06.15 |