본문으로 바로가기

   

 

문자열 Hello World의 출력
먼저 예제를 살펴보자.

#include <iostream>

void main()
{
	int num = 10;
	std::cout << "Hello World" << std::endl;
	std::cout << "Hello " << "World!" << std::endl;
	std::cout << num << std::endl;
	std::cout << 3.14 << std::endl;
	system("pause"); //결과창을 바로 안닫히게 해주는 메소드
}

 

헤더파일 선언문 : #include <iostream>
c언어에서는 #include <stdio.h> 뒤에 .h로 확장자를 붙였지만, C++에서는 생략하기로 약속되어있다.

std::cout<<'출력대상';
'출력대상'의 위치에는 무엇이든 올 수 있다. (정수, 실수, 문자열, 변수)
C언어에서의 printf 함수와 달리 %d, %s와 같은 서식문자를 이용해서 별도의 출력포맷을 지정하지 않아도 데이터의 성격에 따라 적절한 출력이 이뤄진다.

std::endl;
<<연산자를 이용한 std::endl의 출력은 개행으로 이어진다.

scanf를 대신하는 데이터의 입력

#include <iostream>

void main()
{
	double val1;
	std::cout << "첫 번째 숫자 입력";
	std::cin >> val1;

	double val2;
	std::cout << "두 번째 숫자 입력";
	std::cin >> val2;
	
	double result;
	result = val1 + val2;
	std::cout << result << std::endl;

	system("pause"); //결과 창 바로 안닫히게 해주는 함수 

}

 

 

위의 예제를 통해서 알 수 있는 특성을 정리해보면
1) 키보드로부터 데이터 입력에도 헤더파일 선언문 #include <iostream>이 필요하다.
2) 키보드로부터의 데이터 입력에는 std::cin과 >> 연산자가 사용된다.
3) 변수의 선언은 어디서든 가능하다.
4) std::cin>>'변수'; 

 


C++의 지역변수 선언
C언어는 함수를 정의함에 있어서 지역변수의 선언이 항상 제일 먼저 등장해야했다.
그러나, C++의 지역변수 선언은 함수 내 어디든 삽입이 가능하다.

#include <iostream>

void main()
{
	int val1, val2;
	std::cout << "두 개의 정수 입력";
	std::cin >> val1 >> val2; //연속적인 데이터 입력 가능

	int result = 0;

	if (val1 < val2)
	{
		for (int i = val1 + 1; i < val2; i++) //int i 선언
		{
			result += i;
		}
	}
	else {
		for (int i = val2 + 1; i < val1; i++)
		{
			result += i;
		}
	}

	std::cout << "두 수 사이의 합 : " << result << std::endl;
	system("pause");

}

 

 

배열 기반의 문자열 입출력

#include <iostream>

void main()
{
	char name[100];
	char lang[200];

	std::cout << "이름을 입력해주세요 : ";
	std::cin >> name;

	std::cout << "좋아하는 프로그래밍 언어는 무엇인가요? ";
	std::cin >> lang;

	std::cout << "내 이름은 " << name << " 입니다." << std::endl;
	std::cout << "좋아하는 프로그래밍 언어는 " << lang << " 입니다. " << std::endl;
	
	system("pause");
}

문제1)
사용자로부터 총 5개의 정수를 입력 받아서, 그 합을 출력하는 프로그램을 작성해보자.
단, 프로그램의 실행은 다음과 같이 이뤄져야 한다.

 

#include <iostream>

void main()
{
	int input;
	int total = 0;

	for (int i = 0; i < 5; i++) {
		std::cout << i + 1 << "번째 정수 입력 : ";
		std::cin >> input;
		total += input;
	}
	std::cout << "합계 : " << total << std::endl;

	system("pause");
}

 

 

문제2)
프로그램 사용자로부터 이름과 전화번호를 문자열의 형태로 입력 받아서
입력 받은 데이터를 그대로 출력하는 프로그램을 작성해 보자.

#include <iostream>

void main()
{
	char name[100];
	char tel[100];


	std::cout << "이름을 입력해주세요 : ";
	std::cin >> name;
	
	std::cout << "전화번호를 입력해주세요 : ";
	std::cin >> tel;

	std::cout << "이름 : " << name << std::endl;
	std::cout << "전화번호 : " << tel << std::endl;

	system("pause");
}

 

 

문제3)
숫자를 하나 입력 받아서 그 숫자에 해당하는 구구단을 출력하는 프로그램을 작성해 보자.
예를 들어서 사용자가 5를 입력한다면 구구단에서 5단을 출력해야 한다.

#include <iostream>

void main()
{
	char name[100];
	char tel[100];


	std::cout << "이름을 입력해주세요 : ";
	std::cin >> name;
	
	std::cout << "전화번호를 입력해주세요 : ";
	std::cin >> tel;

	std::cout << "이름 : " << name << std::endl;
	std::cout << "전화번호 : " << tel << std::endl;

	system("pause");
}

 

 

문제4)
판매원들의 급여 계산 프로그램을 작성해 보자. 이 회사는 모든 판매원에게 매달 50만원의 기본 급여와 물품 판매 가격의 12%에 해당하는 돈을 지급한다. 예를 들어서 민수라는 친구의 이번 달 물품 판매 금액이 100만원이라면, 50+100X0.12=62, 따라서 62만원을 급여로 지급 받는다.
단, 아래의 실행의 예에서 보이듯이 이러한 급여의 계산은 -1이 입력될 때까지 계속 되어야 한다.

#include <iostream>

int input_money(int money)
{
	int total = 50 + (money*0.12);
	return total;
}

void main()
{
	while (true) {

		int money;
		std::cout << "판매 금액을 만원 단위로 입력(-1 to end) : ";
		std::cin >> money;

		if (money == -1) {
			std::cout << "프로그램을 종료합니다."<< std::endl;
			break;
		}
		else {
			std::cout << "이번 달 급여 : " << input_money(money) << "만원"<<std::endl;
		}
	}
	system("pause");
	
}