Русские символы в С++
Имеется консольное приложение. Создан класс, в котором часть свойств - строки, часть - числа. Приложение должно сначала запросить у пользователя данные, потом вывести. Если setlocale используется, то в консоль фразы "Введите фамилию", "Введенная фамилия: " и т. п. выводятся нормально, русскими символами, но при этом само значение фамилии - кракозябрами. И получается что то типа:
Ввод:
Введите фамилию: Иванов
Вывод:
Фамилия: /кракозябры/
Если setlocale НЕ использовать, то получается наоборот:
Ввод:
/кракозябры/: Иванов
Вывод:
/кракозябры/: Иванов
Как решить такую проблему?
Андрюха, ДОС консоли по умолчанию не читают АСКИ кодировку. В том редакторе, где пишешь исходник сохраняй его в кодировке 866 ОЕМ. Стандартный блокнот, увы, не работает с ней. Возьми хороший аналог -ЭйкелПад (извини, латиница не поддерживается) . Он и на русском, и заточен как раз для программистов!
Значит, setlocale неправильно используется...
Используй второй вариант, но текст исходника программы редактируй в стороннем редакторе.