1. [C++] 프로젝트 세팅 및 입출력

2024. 4. 8. 22:35[C++]/C++ 언어 기초

 

우선 콘솔창이 바로 꺼지는 문제를 해결하기 위해 속성 - 구성 속성 - 링커 - 시스템 - 하위 시스템 옵션을 콘솔로 변경해준다.

 

 

출력문

Hello World 예제

#include <iostream>

int main(void)
{
    int num = 20;
    std::cout << "Hello World!"<<std::endl;
    std::cout << "Hello "<<"World!"<< std::endl;
    std::cout << num<< ' '<<'A';
    std::cout << " " <<3.14<<std::endl;
}
Hello World!
Hello World!
20 A 3.14
  • C언어와 다르게 표준 헤더 파일 선언에서 확장자를 생략한다. (.h)
  • 출력문은 std::cout<<...<<;
  • 여러개를 같이 쓸 수 있고, std::endl을 하면 줄바꿈이 된다(\n을 해줘도 됨)
  • 변수 또한 입력 가능하다.

 

입력문

int val1;
std::cout << "첫 번째 숫자입력: ";
std::cin >> val1;

int val2;
std::cout << "두 번째 숫자입력: ";
std::cin >> val2;

int result = val1 + val2;
std::cout << "덧셈결과: " << result << std::endl;
첫 번째 숫자입력: 3
두 번째 숫자입력: 5
덧셈결과: 8
  • 입력은 std::cin>>..;으로 해주면 된다.
  • 데이터 입력에도 헤더파일 선언문 iostream이 필요하다.
  • 데이터 입력에는 std::cin과 >>연산자가 사용된다.
  • 변수의 선언은 어디서든 가능하다.
  • C와 다르게 별도의 포맷 지정이 필요 없다.

 

배열 기반의 문자열 입출력

    char name[100];
    char lang[200];

    std::cout << "이름은 무엇입니까?";
    std::cin >> name;

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

    std::cout << "내 이름은 " << name << "입니다.\n";
    std::cout << "제일 좋아하는 언어는 " << lang << "입니다.\n";
이름은 무엇입니까?juju
좋아하는 프로그래밍 언어는 무엇인가요?c++
내 이름은 juju입니다.
제일 좋아하는 언어는 c++입니다.
  • 배열 기반의 문자열 입출력이다.

직접 풀어보는 연습 예제

 

문제 1

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

1번째 정수 입력 : 1
2번째 정수 입력 : 2
3번째 정수 입력 : 3
4번째 정수 입력 : 4
5번째 정수 입력 : 5
합계 : 15

 

내가 푼 정답 코드

 int num[5];
 int total;

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

 

 

문제 2

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

 

내가 푼 정답 코드

char name[20], phone[30];
std::cin>>name>>phone;
std::cout<<name<<" "<<phone;

 

문제 3

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

 

내가 푼 정답 코드

     int gugu;
     std::cout<<"구구단을 외자!\n숫자를 입력해주세요 : ";
     std::cin>>gugu;

     for(int i = 1; i < 10; i++){
     std::cout<<gugu<<"x"<<i<<" = "<<gugu*i<<std::endl;
     }

 

 

문제 4

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

판매 금액을 만원 단위로 입력(-1 to end): 100
이번 달 급여 : 62만원
판매 금액을 만원 단위로 입력(-1 to end): 200
이번 달 급여 : 74만원
판매 금액을 만원 단위로 입력(-1 to end): -1

 

내가 푼 정답 코드

  int num;
  int salary;
  while (num != -1) {
      std::cout << "판매 금액을 만원 단위로 입력(-1 to end): ";
      std::cin >> num;
      salary = 50 + (num * 0.12);
      std::cout << "이번 달 급여 : " << salary << "만원\n";
  }
반응형