В чем прикол этой ошибки?
В общем глупый вопрос, но задать его стоит. Когда писал маленькую программу на C++, импортировал русский язык, ну в общем для вывода символов на русском языке. Когда данные уже были введены в консоль их потребовалось вывести. А вот при выводе возникает ошибка, причем все данные типа string, то есть все соответствует типам переменных, выводится вот такая бяка: Добро пожаловать, '?а??c! Вы живете на улице ?а б- п. Вот сам код:
1234567891011121314151617
#include <iostream>
#include <string>
int main() {
using namespace std;
setlocale(LC_ALL, "RUS");
cout << "Введите ваше имя: ";
string name;
cin >> name;
cout << "\nВведите ваш адрес: ";
string street;
cin >> street;
cout << "\n\nДобро пожаловать, " << name;
cout<< "! Вы живете на улице " << street << ".";
}
По дате
По Рейтингу
Так попробуйте.
123456789101112131415161718
#include <iostream>
#include <string>
using namespace std;
int main() {
system("chcp 1251 > nul");
cout << "Введите ваше имя: ";
string name;
cin >> name;
cin.ignore(0x1000, '\n');
cout << "Введите ваш адрес: ";
string address;
getline(cin, address);
cout << "\nДобро пожаловать, " << name
<< "! Вы проживаете по адресу: " << address << ".\n";
system("pause > nul");
}
Разные кодировки ввода и вывода скорее всего
Вот это вот: setlocale(LC_ALL, "RUS"); не устанавливает русский язык в консоли. Для нормальной работы с русским вводом/выводом в Windows необходимо использовать SetConsoleOutputCP и SetConsoleCP.
Да я ваще хз
Больше по теме