본문 바로가기
프로그램/C++ 1000제

C++ 138제] 어서와! C++은 처음이지! CHAPTER 13. 도전문제 p544

by 건티 2024. 12. 23.
728x90

출처 : 반크_반크 20년 백서

 

참고풀이]

#define _CRT_SECURE_NO_WARNINGS
#include <conio.h>
#include <iostream>
#include <string>
#include <fstream>
#include <vector>
using namespace std;

int main()
{
   int i;
   char ch;
   vector<string> words;
   ifstream infile("words.txt");

   while (infile)
   {
      string word;
      infile >> word;
      words.push_back(word);
   }

   while (true) 
   {
      string r = words[rand() % words.size()];

      //선택된 단어의 길이 만큼 _로 초기화한 문자열을 생성한다.
      string guess(r.length(), '_');

      //문자열을 맞춘다.
      while (true)
      {
         cout << guess << endl;
         cout << "글자를 입력하시오 : ";
         cin >> ch;

         for (i = 0;i < r.length();i++)
            if (ch == r[i])
         guess[i] = ch;

          if (r == guess)
         {
            cout << r << endl;
            cout << "축하합니다! 성공하였습니다!\n";
            break;
         }
      }

      cout << "\n계속하시겠습니까(y/n)? "; cin >> ch;
      if (toupper(ch) == 'N') break;
      cout << "\n";
   }

   cout << "수고하셨습니다.\n";

   return 0;
}

 

참고파일]

words.txt
0.01MB

 

 

참고풀이 결과]

 

 

 

 

 

대한민국의 아름다운 영토, 독도의 여름

 

반응형

댓글