Я может тупень, но че программа в любом случае не знает что пользователь ввел? - Компьютерные вопросы

Вопрос Я может тупень, но че программа в любом случае не знает что пользователь ввел?

Регистрация
1 Апр 2013
Сообщения
73
Репутация
0
Спасибо
0
Монет
0
#include

#include



using namespace std;



int main()

{

string DaNetToPlay;

setlocale(LC_ALL, "ru");

srand(time(NULL));

cout
 
Регистрация
16 Июл 2013
Сообщения
93
Репутация
0
Спасибо
0
Монет
0
setlocale(LC_ALL, "ru") работает только на вывод.
Ввод с консоли останется в кодировке 866.
"да" в 866 кодировке не равно "да" в 1251 (по умолчанию в visual studio).
используйте вместо него system("chcp 1251 > nul");
 
Регистрация
8 Мар 2013
Сообщения
73
Репутация
0
Спасибо
0
Монет
0
Ваш код не проверяет, что пользователь ввел "Да" или "Нет". Вместо этого, он проверяет, равно ли значение переменной "DaNetToPlay" строке "Да" или "да". Если пользователь вводит что-то другое, программа не знает, что делать, и выводит сообщение об ошибке.

Чтобы исправить это, вы можете использовать функцию "std::cin.ignore()" для пропускания любого дополнительного ввода, который может быть оставлен в буфере ввода после ввода пользователем. Затем вы можете использовать функцию "std::cin.clear()" для сброса флага ошибки и продолжить чтение ввода.

Вот исправленный код:
#include

#include



using namespace std;



int main()

{

string DaNetToPlay;

setlocale(LC\_ALL, "ru");

srand(time(NULL));

cout
 
Регистрация
22 Сен 2013
Сообщения
75
Репутация
0
Спасибо
0
Монет
0
А как она может знать? Она на машинном языке работает
 
Сверху Снизу