내배캠 TIL

[내배캠 TIL 251209] C++ 기초 문법 활용한 예제

xodn246 2025. 12. 9. 20:37

앞서 배운 C++ 기초 문법들과 "Windows.h" 라이브러리에 포함되어있는 Sleep() 함수를 이용해 지연을 발생시켜 다양한 예제를 만들어 보았습니다.

포멧 장난

#include <iostream>
#include <Windows.h>

using namespace std;

// 문제를 틀렸을 경우 호출하는 포멧 함수
void Format() {
	int progress = 0;
	cout << "틀리셨군요 포멧을 진행합니다...!" << endl;

	// 0.35초 마다 진행도를 5%씩 상승하며 출력
	while (progress <= 100) {
		cout << "포멧 진행률..." << progress << "%" << endl;
		progress += 5;
		Sleep(350);
	}

	cout << "포멧 완료...!!!" << endl;

	Sleep(2000);
	cout << "사실 장난이었습니다~" << endl;
}

int main() {
	string answer;

	cout << "삐빅! 당신의 컴퓨터는 바이러스에 걸렸습니다." << endl;
	cout << "지금부터 답변을 제대로 하지 않으면 당신의 컴퓨터는 포맷됩니다...!\n" << endl;

	cout << "첫번째 문제\n망자를 살려내며 너를 울고 웃게 하고, 젊게 만들어주며, 찰나에 태어나지만, 평생 지속되는 것은?" << endl;
	cin >> answer;

	// 답을 틀렸을경우 Format함수 호출, 정답일 경우 다음으로 진행
	if (answer != "기억") {
		Format();
		return 0;
	}

	cout << "\n두번째 문제\n절대 쉬지도 멈추지도 않으며, 언덕에서 언덕으로 고요히 움직이고, 걷거나 달거나 잰걸음 하지 않으며, 모두 차가워도 홀로 차갑지 않은 것은?" << endl;
	cin >> answer;
	if (answer != "태양") {
		Format();
		return 0;
	}

	cout << "\n세번째 문제\n밤이면 부르지 않아도 나타나며, 낮에는 도둑맞지 않아도 사라지는 것은?" << endl;
	cin >> answer;
	if (answer != "별") {
		Format();
		return 0;
	}

	cout << "\n대단하군!!! 사실 전부 장난이었습니다!" << endl;
	return 0;
}

 

한글자씩 출력하기

#include <iostream>
#include <string>
#include <Windows.h>

using namespace std;

int main() {
	string inputSentence;
	int dotCount = 0;     // '.' 이 몇개 연속해서 나왔는지 카운트

	cout << "출력하고싶은 문장을 입력해 보세요 : ";
	getline(cin, inputSentence);    // 문장단위로 입력받기

	for (int i = 0; i < inputSentence.size(); i++) {
		if (inputSentence[i] == '.') {
			Sleep(50);
			cout << inputSentence[i];
			dotCount++;

			// '.' 이 3개 연속해서 나왔다면 줄바꿈
			if (dotCount == 3) {   
				dotCount = 0;        // '.' 연속 카운트 초기화
				cout << "\n";
				Sleep(300);
			}
		}
		else {
			dotCount = 0;          // 현재 글자가 '.' 이 아닐경우 연속 카운트 초기화

			// 현재 글자가 공백문자 또는 ',' 일 경우 0.2초 후에 출력
			if (inputSentence[i] == ' ' || inputSentence[i] == ',') {     
				Sleep(200);
				cout << inputSentence[i];
			}
			// 현재 글자가 공백문자 또는 ',' 가 아닐경우 0.05초 후에 출력
			else {               
				Sleep(50);
				cout << inputSentence[i];
			}
		}
	}
}