본문 바로가기

C++ Programing

cin, cout and namespace

cpp 프로그래밍 정리.

 

std::cout

cout은 c++의 표준 출력 스트림 객체이다. 프로그램에서 출력할 데이터를 자신과 연결된 스크린에 대신 출력해준다.

c언어에서의 printf와 비슷한 기능이다.

 

std::cout을 쓰기 위해서는 << 연산자를 붙여야하며 여러개를 붙일 수 있다.

std::cout << "안녕하십니까" << "Hello~" << "곤니찌와\n";

 

printf에서 문자열 외에 변수를 입력할려면 변수형에 맞게 %d, %s등을 사용해야 했지만 cout은 그냥 써도 문제 없다.

int house = 5;
char room = '9';

std::cout << "지태의 집은" << house << "개 이며, 방은" << room <<"개 있다 \n";

 

std::cin

cin은 마찬가지로 c++의 표준 스트림 객체이다. 프로그램에서 입력할 데이터를 자신과 연결된 스크린에서 대신 입력을 받아준다.

c언어에서의 scanf와 비슷한 기능이다.

 

std::cin을 쓰기 위해서는 >> 연산자를 붙여야하며 여러개를 붙일 수 있다.

int width;
int height;

std::cin >> width >> height;

 

namespace

프로젝트를 여러명이 나누어 개발하거나 많은 양의 코드를 작성하다 보면 identifier가 충돌하는 경우가 있다.

이런 충돌을 막기위해 사용하는 것이 namespace이다.

 

using namespace

using 지시어를 사용하면 다음 example 처럼 접두어를 생략 할 수 있다.

using std::cout; //cout에 대해서만 std:: 생략
...
cout << "Hi Jitae" << std::endl; //endl은 생략 불가.


using namespace std; //해당 선언한 파일에 std:: 생략이 모두 가능하다.
...
cout << "Hi Hyojin" << endl; // cout과 endl의 std는 모두 생략 함.

 

다음과 같이 프로그램 작성하여 나름대로 익혀 보았다

main.cpp

#include <iostream>
#include "people.h"

using namespace std;

int main()
{
    cout << "Welcome CPP PROGRAMMING !!\n";

    cout << "Jitae Weight : " << jitae::weight() << "\r\n";
    cout << "Jitae Noise : " << jitae::noise() << "\r\n";
    cout << "Jitae Mouse : " << jitae::mouse() << "\r\n";
    cout << "Hyojin Weight : " << hyojin::weight() << "\r\n";
    cout << "Hyojin Noise : " << hyojin::noise() << "\r\n";
    cout << "Hyojin Mouse : " << hyojin::mouse() << "\r\n";

    cout << "지태의 Noise, Mouse를 순서대로 입력하세요\r\n";
    int arg1, arg2 = 0;
    cin >> arg1;
    cin >> arg2;

    cout << "지태의 Noise, Mouse를 입력중이 입니다 ...\r\n";
    jitae::cin_noise(arg1);
    jitae::cin_mouse(arg2);

    cout << "Jitae Weight : " << jitae::weight() << "\r\n";
    cout << "Jitae Noise : " << jitae::noise() << "\r\n";
    cout << "Jitae Mouse : " << jitae::mouse() << "\r\n";

    return 0;
}

people.cpp

#include "people.h"


namespace jitae
{
    int _noise = 1;
    int _mouse = 1;

    int weight()
    {
        return 70;
    }

    int noise()
    {
        return jitae::_noise;
    }

    int mouse()
    {
        return jitae::_mouse;
    }

    int cin_noise(int arg)
    {
        jitae::_noise = arg;

        return 0;
    }

    int cin_mouse(int arg)
    {
        jitae::_mouse = arg;

        return 0;
    }
}

namespace hyojin
{
    int _noise = 2;
    int _mouse = 3;

    int weight()
    {
        return 55;
    }

    int noise()
    {
        return hyojin::_noise;
    }
    
    int mouse()
    {
        return hyojin::_mouse;
    }
}

 

people.h

ifndef __PEOPLE_H__
#define __PEOPLE_H__

namespace jitae
{
    int weight();
    int noise();
    int mouse();

    int cin_noise(int arg);
    int cin_mouse(int arg);
}

namespace hyojin
{
    int weight();
    int noise();
    int mouse();
}

#endif
~

코드주소 : https://github.com/KJT9109/CPP-Programing.git

 

GitHub - KJT9109/CPP-Programing

Contribute to KJT9109/CPP-Programing development by creating an account on GitHub.

github.com

 

'C++ Programing' 카테고리의 다른 글

클래스(class) - 생성자, 소멸자  (0) 2023.06.11
클래스(Class) - 객체 생성  (0) 2023.04.03