Setlocale lc all russian не работает

оператор 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[])
f=fopen("1.txt","a+");
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

Rate this post
Читайте также:  Diablo 3 поддержка геймпада

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *