본문 바로가기
C++/윤성우 열혈 C++ 프로그래밍

01-1 Printf와 Scanf를 대신하는 입출력 방식

by 대소기 2021. 9. 26.

헤더파일 선언문

  • 헤더파일의 확장자는 .h이다.
  • 하지만 C++에서는 표준 헤더파일(반대 : 프로그래머 정의 헤더파일) 선언에서는 확장자 생략
  • 이는 과거의 표준 라이브러리와 새로운 표준 라이브러리를 구분하기 위해서이다.

std::cout과 << 연산자를 이용한 출력

  • C언어의 printf와 달리 서식문자(%d, %s 등의)를 따로 지정해주지 않아도 출력이 가능하다.

<<연산자를 이용한 출력대상의 연이은 표현과 개행

std::cout<<"출력대상1"<<"출력대상2"<<"출력대상3";
  • <<를 통해 여러개의 출력 대상을 연이어서 출력할 수 있다
std::cout<<"Hello "<<"World!"<<std::endl;
  • endl을 통해 개행이 이뤄진다.

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

int val1, val2;
std::cin>>val1>val2;
  • C언어의 scanf를 대신하여 C++에서는 std::cin>>을 사용한다.
  • 또한 여러 개의 변수를 연속으로 입력받는 것도 가능하다.
  • 사용자 입력시 변수의 구분은 tab, spacebar, enter와 같은 공백을 통해 이뤄진다.
#C언어에서의 입력 방법
char str[100];
scanf('%s', str);

#C++의 입력 방법
char str[100];
std::cin>>str;
  • std::cin>>을 통한 입력시에는 출력과 마찬가지로 C언어에서 사용하는 것과 같은 서식문자를 사용하지 않아도 된다.

C++의 지역변수 선언

  • C언어에서는 항상 지역변수 선언이 먼저 이뤄져야 했다.
  • C++에서는 함수 내 어디서든 지역변수 선언이 가능하다.

01-1 연습문제

문제 1

사용자로부터 총 5개의 정수를 입력받고, 합을 출력하는 프로그램 작성.

#include <iostream>

int main(void){
    int num=0;
    for (int i=1; i<6; i++){
        int tmp=0;
        std::cout<<i<<"번째 정수 입력: ";
        std::cin>>tmp;
        num+=tmp;
    std::cout
    }

    std::cout<<"합계: "<<num<<std::endl;
    return 0;
}

문제 2

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

#include <iostream>

int main(void){

    char name[100];
    char num[100];

    std::cout<<"Name: ";
    std::cin>>name;
    std::cout<<"Phone number: ";
    std::cin>>num;

    std::cout<<"Name: "<<name<<"\nPhone number: "<<num<<std::endl;

    return 0;
}

문제 3

숫자를 하나 입력 받아서 해당 숫자에 해당하는 구구단을 출력하는 프로그램 작성.

#include <iostream>

int main(void){
    int num;

    std::cout<<"write down an integer: ";
    std::cin>>num;

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

    return 0;
}

문제 4

#include <iostream>

int main(void){
    while(true)
    {
        int money;

        std::cout<<"판매 금액을 만원 단위로 입력(-1 to end): "<<std::endl;
        std::cin>>money;
        if (money==-1)
        {
            break;
        }

        money=50+money*0.12;

        std::cout<<"이번 달 급여: "<<money<<"만원"<<std::endl;
    }

    return 0;
}

'C++ > 윤성우 열혈 C++ 프로그래밍' 카테고리의 다른 글

01-4 인라인 함수(inline function)  (0) 2021.09.26
01-3 매개변수의 디폴트 값  (0) 2021.09.26
01-2 함수 오버로딩  (0) 2021.09.26