Top.Mail.Ru
Ответы

В чем прикол этой ошибки?

В общем глупый вопрос, но задать его стоит. Когда писал маленькую программу на 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 << "."; 
 
 
} 
По дате
По Рейтингу
Аватар пользователя
Новичок
2мес

Так попробуйте.

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"); 
} 
Аватар пользователя
Просветленный
2мес

Разные кодировки ввода и вывода скорее всего

Аватар пользователя
Высший разум
2мес

Вот это вот: setlocale(LC_ALL, "RUS"); не устанавливает русский язык в консоли. Для нормальной работы с русским вводом/выводом в Windows необходимо использовать SetConsoleOutputCP и SetConsoleCP.

Аватар пользователя
Знаток
2мес

Да я ваще хз