1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <iostream>
#include <locale>
#include <windows.h>
#include <string>
using namespace std;
string from_DOS(const char* dos_string)
{
string res(strlen(dos_string), ' ');
OemToCharA(dos_string, const_cast<char*>(res.c_str()));
return res;
}
string from_DOS(string DOS_string)
{
char buf[1000000];
OemToCharA(DOS_string.c_str(), buf);
return buf;
}
static const int buffer_size = 1024;
static char buffer[buffer_size];
void main ()
{
setlocale( LC_ALL,"Russian" );
string s;
char a;
int i=1;
cout <<"Поговорите с забывчивым попугаем :)\n";
do
{
cin.getline(buffer, buffer_size);
s = from_DOS(buffer);
if (i==5) // можно заменить for(int i=1,i<=5,i++)
{
cout << "Попугай устал" << endl;
break;
}
i++;
cout << s << endl << "Хотите ещё поболтать? (y/n)" << endl;
do
{
cin >> a;
cin.sync(); // удаляет "излишек" символов после y/n (если таковой имеется)
if (a == 'n')
{
cout <<"Ну, как хотите...\n";
break;
}
else if (a == 'y')
cout << "Дерзайте!" << endl;
else
cout << "Введите y или n" << endl;
}
while (a!='y' && a!='n');
}
while (a == 'y');
system ("pause");
}