따배씨++ (2.5 char)

김동우·2021년 4월 9일
0

안녕하십니까. 김동우입니다.

이사를 하고 나서 드디어 공부할 여유가 생겼습니다.

오늘의 코드는 이렇습니다.

#include <iostream>
#include <limits>

int main() 
{
    using namespace std;

    char c1(65);
    char c2('A'); // 문자열은 "" 한글자는 ''

    //문자열은 std::string 활용

    cout << c1 << " " << c2 << " " << int(c1) << " " << int(c2) << '\n' << endl;
    // output : A A 65 65
    // char type을 숫자로 초기화하면, 아스키코드 넘버링에 맞는 문자가 출력된다.
    // 반대로 int 형으로 char type data를 출력할 경우 반대로 숫자가 출력된다.

    cout << (char)65 << endl;
    cout << (int)'A' << '\n' << endl;
    // c-style casting

    cout << char(65) << endl;
    cout << int('A') << '\n' << endl;
    // cpp-style casting

    cout << static_cast<char>(65) << endl;
    cout << static_cast<int>('A') << '\n' << endl;
    // static_cast - dynamic_cast
    // cast개념은 후에 다시 다룰 예정이다.
    // 강제적으로 볍환하는 위 casting 과는 달리 컴파일러에게 미리 설명하는 방식

    char ch(97);
    cout << ch << endl;
    cout << static_cast<int>(ch) << endl;
    cout << ch << '\n' << endl;
    // static_cast 이후에도 변수값의 영향은 없다.

    char c3;

    cin >> c3;
    cout << c3 << " " << static_cast<int>(c3) << endl;
    // buffer가 존재하기 때문에 여러글자를 입력해도 후에 한글자를 제외한 나머지를
    // 다시 입력받게 된다.
    cin >> c3;
    cout << c3 << " " << static_cast<int>(c3) << endl;

    cin >> c3;
    cout << c3 << " " << static_cast<int>(c3) << endl;
    // 4개의 cin code(4글자) - 4글자 이하로 입력 시 재입력을 요청한다.
    cin >> c3;
    cout << c3 << " " << static_cast<int>(c3) << '\n' << endl;
    // buffer test code

    char c4(88);
    
    cout << sizeof(char) << endl;
    cout << (int)std::numeric_limits<char>::max() << endl;
    cout << (int)std::numeric_limits<char>::lowest() << '\n' << endl;
    // 자료형의 크기 확인 <limits> 내의 함수

    cout << "This is first line \nsecond line\n";
    cout << int('\n') << endl; // output : 10
    // \n과 endl의 차이는 버퍼 내의 자료를 쏟아내느냐에서 차이가 있다.
    // flush의 경우 줄바꿈이 없지만 버퍼 자료를 전부 출력한다.

    cout << int('\t') << endl; // output : 9
    cout << "test \ttest" << endl;

    wchar_t c5; // windows 기반 개발에서 사용, 가급적 제한하는게 좋다.
    char32_t c6; // unicode 사용 시 선언(?)

    cout << "Hello, \u0444! \n"; // output : Hello, ф!

    // 문자열 개발에 있어 \ 기호는 생각보다 많은 역할을 한다.
    // 표현이 제한적인 기호 또한 \ 기호를 활용할 경우 표현할 수 있다.
    // 백준 문제 중 일부의 해답이 될 수 있겠다.

    return 0;
}

그럼 이번 글은 여기서 마치도록 하겠습니다.

0개의 댓글

관련 채용 정보