C++

C++ 프로그래밍 3주차

asd135 2023. 9. 20. 12:44
728x90

sizeof 연산자 예

#include <iostream>
using namespace std;

int main() {
    int x;  // 정수형 변수 x를 선언
    int y[10];  // 정수형 배열 y를 선언, 크기는 10

    cout << sizeof("I love you!") << endl; // "I love you!" 문자열의 크기를 출력. 널 종료 문자('\0')까지 포함된 길이이므로 13이 출력됩니다.
    cout << sizeof("대한") << endl; // "대한" 문자열의 크기를 출력. 인코딩 방식에 따라 결과가 다르며, UTF-8 인코딩일 경우 한글 한 글자당 3바이트로 계산되어 총 9가 출력됩니다.
    cout << sizeof(int) << endl; // int 형 자료의 크기를 바이트 단위로 출력. 일반적으로 대부분의 시스템에서는 4가 출력됩니다.
    cout << sizeof(x) << endl; // 변수 x의 크기를 바이트 단위로 출력. x는 int 형 변수이므로 위와 마찬가지로 대부분의 시스템에서는 4가 출력됩니다.
    cout << sizeof(y) << endl; // 배열 y의 전체 크기를 바이트 단위로 출력. y는 int 형을 원소로 가진 배열(크기:10) 이므로, 각 원소가 차지하는 공간인 4바이트 * 원소 개수인 10개 = 총 40바이트가 되어서, 대부분 시스템에서는 이 값인 '40' 이 출력됩니다.

    return 0;
}

혼합 대입 연산자

#include <iostream>
using namespace std;

int main() {
    int x=1;
    x++;
    ++x;
    x = x + 1;
    x += 1;
    return 0;
}

시프트 연산자

#include <iostream>
using namespace std;

int main() {
    cout << (90 << 1) << endl; // 180
    cout << (90 * 2) << endl; // 180
    cout << (90 << 2) << endl; // 360
    cout << (90 << 3) << endl; // 720 
    cout << (90 << 4) << endl; //1440 
    cout << (90 >> 1) << endl; //45
    cout << (90 / 2) << endl;//45
    cout << (90 >> 2) << endl;//22
    cout << (90 >> 3) << endl;//11

    return 0;
}

시프트 연산자는 곱하기나 나누기하는 데 사용하지만 cin, cout에서 사용하면 다른 의미가 된다.


연산자의 우선순위(Precedence)와 결합성(Associativity)


if문 예제

#include <iostream>
using std::cout;
using std::cin;
using std::endl;

int main(void)
{
    int score;

    cout << "당신의 점수를 입력하고 Enter를 누르세요. ==>";
    cin >> score; //점수를 입력받음
    if (score < 60) {
        cout << "60점 미만이므로 재수강해야 합니다.\n";
    }
    else {
    cout << "60점 이상이므로 Pass입니다.\n";
    }
    return 0;
}

if문 다음에는 조건문이 오고 조건문이 참이면 중괄호 안에 있는 문장을 실행한다.



if문 switch문으로 바꾸기

#include <iostream>
using namespace std;

int main() {
    int value;
    cout << "1~3까지의 수를 입력하세요: ";
    cin >> value;

    if (value == 1) 
        cout << "1을 입력하셨습니다.\n";
    else if (value == 2) 
        cout << "2를 입력하셨습니다.\n";
    else if (value == 3)
        cout << "3을 입력하셨습니다.\n";
    else 
        cout << "잘못 입력하셨습니다.\n";

    return 0;
}
#include <iostream>
using namespace std;

int main() {
    int value;
    cout << "1~3까지의 수를 입력하세요: ";
    cin >> value;
    switch (value)
    {
    case 1:
        cout << "1를 입력하셨습니다.\n";
        break;
    case 2:
        cout << "2를 입력하셨습니다.\n";
        break;
    case 3:
        cout << "3을 입력하셨습니다.\n";
        break;
    default:
        cout << "잘못 입력하셨습니다.\n";
    }
    return 0;
}

switch case문을 사용하는 언어

C, C++, C#, Java, JavaScript, PHP, Swift, Objective-C, Prelm Ruby, Go

Python은 switch case 문을 직접 지원하지 않는 대신 딕셔너리(dictionary) 또는 if-elif-else 구조를 사용하여 비슷한 기능을 구현 할 수 있다.


for문 예제

#include <iostream>
using namespace std;
int main()
{
	for (int i = 0; i < 10; i++) {
		cout<< i+1 << ":C++ " << endl; // C++ 10번 출력
	}
	return 0;
}

 


for문으로 이름 10번 찍기

#include <iostream>
#include <iomanip> //setw()
int main()
{
	for (int i = 1; i <= 10; i++) {
		std::cout << std::setw(2) << i << " : 김건우\n"; // setw를 사용할 때는 <iomanip> include 해야된다.
	}
}
#include <iostream>
#include <iomanip> //setw()
using namespace std;
int main()
{
	for (int i = 1; i <= 10; i++) {
		cout << setw(2) << i << " : 김건우\n";
	}
}
#include <iostream>
using namespace std;
int main()
{
	for (int i = 1; i <= 10; i++) {
		cout.width(2); // 다음에 출력되는 하나(i)를 두칸에 출력
		cout << i << " : 김건우\n";
	}
}
#include <iostream>
int main()
{
	for (int i = 1; i <= 10; i++) {
		std::cout.width(2); //다음에 출력되는 하나(i)를 두칸에 출력
		std::cout << i << " : 김건우\n";
	}
}

setw(), std::cout.width() 출력할 필드의 너비를 결정


ASCII 출력

#include <iostream>
using namespace std;

int main() {
    for (int i = 0; i < 128; i++)
        cout << i << "=" << static_cast<char>(i) << "\t";
    return 0;
}

계산기


#include <iostream>
int main(void)
{
	char op;
	int num1, num2;
	for (; ; ) //추가
	{ //추가
		std::cout << "끝내려면 0+0을 입력하세요\n";
		std::cin >> num1 >> op >> num2;
	
		if (num1 == 0 && num2 == 0) break; //추가
		switch (op) {
		case '+':
			std::cout << "덧셈 결과는" << num1 + num2;
			break;
		case '-':
			std::cout << "뺄셈 결과는" << num1 - num2;
			break;
		case '*':
			std::cout << "곱하기 결과는" << num1 * num2;
			break;
		case '/':
			std::cout << "나누기 결과는" << (double)num1 / num2;
			break;
		default:
			std::cout << "다시 입력하세요\n";
			break;
		}// switch~case문 끝
	} //추가, for문 끝
	return 0;
}

메뉴를 가지고 있는 프로그램의 기본 틀

 

#include <iostream>
using namespace std;

int main() {
    int menu;
    do {
        cout << "\n메뉴\n";
        cout << "1: 추가\n";
        cout << "2: 삭제\n";
        cout << "3: 저장\n";
        cout << "4: 수정\n";
        cout << "원하는 작업을 선택하세요 -> ";
        cin >> menu;
    } while (!(menu >= 1 && menu <= 4));

    cout << menu << "를 선택했습니다.\n";

    return 0;
}

 

이 소스들은 한성현 교수님의 소스를 일부 편집, 수정하여 만들었습니다.