оператор setlocale(LC_ALL,"Russian"); при проверке одной консольной программы сpp в 3 оболочках C++Builder, CodeBlocks, MS VisualStudio 2008 давал русские буквы только в Visual Studio. В остальных-не работал. Почему? Мне удобно в разных местах не завязываться только с VisualStudio а нужен надежный способ вывода русского текста вне зависимости от оболочки.
оператор setlocale(LC_ALL,"Russian"); при проверке одной консольной программы сpp в 3
В Code::Blocks такое не работает. В студиии, setlocale(LC_CTYPE,"Russian"), только на вывод.
Вы наверное не раз пытались вывести в консольное приложение русский текст, но вместо него выводились разные кракозябры.
К примеру, если мы напишем такой код на С++
То после компиляции, вот что будет выдавать нам консольное окно программы.
Если же мы будем использовать функцию setlocale() внутри функции main()
То получим вместо иероглифов нормальный русский шрифт, вуаля:
Также, можно опустить последний аргумент функции — setlocale(LC_ALL, "Russian"); можно заменить на setlocale(0, ""); — работоспособность программы от этого не изменится.
// Lab_03.cpp: определяет точку входа для консольного приложения.
//
#include "locale"
#include "stdafx.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
setlocale(LC_ALL,"Russian");
puts("Работа со справочником:
1 — Добавить
2 — Поиск
3 — Вывод базы
4 — Выход");
return 0;
>
на
setlocale(LC_ALL,"Russian");
пишет ошибку:
Ошибка3error C2065: LC_ALL: необъявленный идентификаторe:lablab_03lab_03lab_03.cpp11
Ошибка4error C3861: setlocale: идентификатор не найденe:lablab_03lab_03lab_03.cpp11