Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.90
rar14
28 / 22 / 1
Регистрация: 14.04.2009
Сообщений: 448
#1

Борьба за кириллицу в MS Visual C++ 6.0 - C++

17.04.2009, 22:16. Просмотров 3819. Ответов 13
Метки нет (Все метки)

Для того, что бы выводились символы русского алфавита я знаю такой метод:

C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream.h>
#include <windows.h> // для CharToOem
 
int main()
{
    char str[] = "Русский текст";
    CharToOem(str, str);
    cout << str << "\n";
 
    return 0;
}
Это единственный способ выводить русские символы на консоль?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Bazan
22 / 22 / 0
Регистрация: 15.04.2009
Сообщений: 100
17.04.2009, 22:23     Борьба за кириллицу в MS Visual C++ 6.0 #2
можно еще так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include ... //подключаем все, что надо
_stdcall SetConsoleOutputCP(unsigned);
_stdcall SetConsoleCP(unsigned);
int main()
{
int ...;
char ...;
...//объявляем все, что надо
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
...//делаем все, что надо
return 0;
}
rar14
28 / 22 / 1
Регистрация: 14.04.2009
Сообщений: 448
17.04.2009, 22:26  [ТС]     Борьба за кириллицу в MS Visual C++ 6.0 #3
А какую библиотеку надо подключать для функций SetConsoleOutputCP и SetConsoleCP?
Bazan
22 / 22 / 0
Регистрация: 15.04.2009
Сообщений: 100
17.04.2009, 22:27     Борьба за кириллицу в MS Visual C++ 6.0 #4
точно - не помню, попробуй <stdlib.h> или <string.h>, одна из них
RazorQ
576 / 343 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
17.04.2009, 22:30     Борьба за кириллицу в MS Visual C++ 6.0 #5
в начале main() пиши:
C++
1
setlocale (LC_ALL,".1251");
И все будет отлично
Bazan
22 / 22 / 0
Регистрация: 15.04.2009
Сообщений: 100
17.04.2009, 22:30     Борьба за кириллицу в MS Visual C++ 6.0 #6
А, еще надо в свойствах окна консоли шрифт поменять с точечных шрифтов на Lucida Console
RazorQ
576 / 343 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
17.04.2009, 22:33     Борьба за кириллицу в MS Visual C++ 6.0 #7
Цитата Сообщение от Bazan Посмотреть сообщение
А, еще надо в свойствах окна консоли шрифт поменять с точечных шрифтов на Lucida Console
это не обязательно, у меня всё отлично выводится с точечными шрифтами
rar14
28 / 22 / 1
Регистрация: 14.04.2009
Сообщений: 448
17.04.2009, 22:41  [ТС]     Борьба за кириллицу в MS Visual C++ 6.0 #8
Если так:
C++
1
2
3
4
5
6
7
8
#include <iostream.h>
 
int main() {
 
    setlocale (LC_ALL,".1251");
       
       ...
       ...
Компилятор ругается:
C++
1
2
3
4
5
6
7
Compiling...
lab1.cpp
D:\Project\lab1\lab1.cpp(14) : error C2065: 'setlocale' : undeclared identifier
D:\Project\lab1\lab1.cpp(14) : error C2065: 'LC_ALL' : undeclared identifier
Error executing cl.exe.
 
lab1.exe - 2 error(s), 0 warning(s)
RazorQ
576 / 343 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
17.04.2009, 22:43     Борьба за кириллицу в MS Visual C++ 6.0 #9
попробуй подключить <windows.h>
rar14
28 / 22 / 1
Регистрация: 14.04.2009
Сообщений: 448
17.04.2009, 22:49  [ТС]     Борьба за кириллицу в MS Visual C++ 6.0 #10
Цитата Сообщение от RazorQ Посмотреть сообщение
попробуй подключить <windows.h>
То же самое.
Явно библиотеку какая-то нужно. Но какая?

Добавлено через 3 минуты 47 секунд
Нашел. #include <locale.h> надо подключать.
Только вот русские символы эта функция так и не устанавливает. Все те же каракули.
Bazan
22 / 22 / 0
Регистрация: 15.04.2009
Сообщений: 100
17.04.2009, 22:50     Борьба за кириллицу в MS Visual C++ 6.0 #11
Шрифт переключи.
rar14
28 / 22 / 1
Регистрация: 14.04.2009
Сообщений: 448
17.04.2009, 22:52  [ТС]     Борьба за кириллицу в MS Visual C++ 6.0 #12
Дык. Ну допустим у себя я переключу. А на другом компе как будет? Это не выход.
Monte-Cristo
2786 / 1372 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
17.04.2009, 23:04     Борьба за кириллицу в MS Visual C++ 6.0 #13
насколько я знаю, Visual C++ 6 не дружит с кириллицей... вот Visual C++ 2005-2008 - дружит
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2009, 14:04     Борьба за кириллицу в MS Visual C++ 6.0
Еще ссылки по теме:

C++ Компилятор неправильно отображает кириллицу
Борьба с поеданием памяти оператором new C++
C++ Вывести кириллицу в консоль
Кириллицу в UTF-8 C++
Перевод транслита в кириллицу C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Bazan
22 / 22 / 0
Регистрация: 15.04.2009
Сообщений: 100
18.04.2009, 14:04     Борьба за кириллицу в MS Visual C++ 6.0 #14
Цитата Сообщение от rar14 Посмотреть сообщение
Дык. Ну допустим у себя я переключу. А на другом компе как будет? Это не выход.
Сделай ридми по пользованию программой, где распиши, что надо делать для нормального отображения кирилицы и как.
Yandex
Объявления
18.04.2009, 14:04     Борьба за кириллицу в MS Visual C++ 6.0
Ответ Создать тему
Опции темы

Текущее время: 02:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru