Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.76
levgen42
0 / 0 / 0
Регистрация: 25.02.2010
Сообщений: 27
#1

Русский текст в консольном приложении выводится каракулями - C++

24.03.2010, 10:43. Просмотров 2749. Ответов 28
Метки нет (Все метки)

Всем доброго времеи суток как сделать чтобы вместо каракуль после компилирования выводился русский текст?
0
Изображения
 
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2010, 10:43
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Русский текст в консольном приложении выводится каракулями (C++):

Графика в консольном приложении - C++
Помогите создать приблизительно такую штуку, которая будет высвечиваться при запуске консольной программы, и по нажатию на любую клавишу...

WxWidgets - в консольном приложении - C++
Начал изучение библиотек wxWidgets в Code Blocks, столкнулся с проблемой компиляции, вроде все подключено,просто строку в консоль выводит а...

Графика в консольном приложении VS - C++
подскажите как построить систему координат X,Y. в консольном приложении.Какие модули следует подключать и порядок ввода вывода линий и...

Меню в консольном приложении - C++
есть ошибки не могу исправить #include <iostream> #include <iomanip> #include <ctime> #include <cstdlib> using namespace std; ...

Вывод в консольном приложении - C++
Мне надо после 19 вернуться на прежнюю строку. Что бы после 19 числа начали выводиться вверх ( по спирали, и что бы ничего не стиралось )....

Таблица в консольном приложении - C++
Здравствуйте. Помогите пожалуйста советом, как организовать таблицу в консольном приложении? Таблица состоит из n строк и 2 столбцов.

28
levgen42
0 / 0 / 0
Регистрация: 25.02.2010
Сообщений: 27
24.03.2010, 16:31  [ТС] #16
да это все уже исправлено при таком раскладе

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdafx.h>
#include <iostream>
#include <string> 
#include <windows.h>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale( LC_ALL, "Russian_Russia.1251" );
string lastName, firstName;
    cout << "Введите Ваше имя: ";
    cin >> lastName;
    cout <<"Введите Вашу Фамилию: ";
    cin >> firstName;
    cout <<"Здравствуйте " <<lastName <<" " <<firstName <<"!\n";
    return 0;
    }
текст выводится нормально а то что я ввел каракулями
0
Миниатюры
Русский текст в консольном приложении выводится каракулями  
easybudda
Модератор
Эксперт CЭксперт С++
10020 / 5943 / 1004
Регистрация: 25.07.2009
Сообщений: 11,230
24.03.2010, 16:44 #17
levgen42, говорили же Вам - почитайте тему про русские шрифты в консоли. Не Вы первый, кто, с этим сталкивается...
При установленном в консоли шрифте "Lucida Console" вот так работает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
#include <windows.h>
 
int main(){
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    std::string name;
    std::cout << "Имя: ";
    std::cin >> name;
    std::cout << "Здравствуй, " << name << std::endl;
    
    return 0;
}
Да, и про теги форматирования кода не забывайте, когда здесь его выкладываете...
0
levgen42
0 / 0 / 0
Регистрация: 25.02.2010
Сообщений: 27
24.03.2010, 17:30  [ТС] #18
error C2045: std: переопределение метки!!! выдает вот такую ошибку

Добавлено через 34 минуты
людиии
0
xls
0 / 0 / 0
Регистрация: 20.03.2010
Сообщений: 9
24.03.2010, 18:28 #19
Всё намного легче
C++
1
2
3
4
5
6
7
#include <stdio.h>
#include <iostream.h>
int main(void)
{
    setlocale(LC_ALL,"Rus");
    cout<<"Привет, лопухи";
}
0
levgen42
0 / 0 / 0
Регистрация: 25.02.2010
Сообщений: 27
25.03.2010, 08:41  [ТС] #20
Цитата Сообщение от xls Посмотреть сообщение
Всё намного легче
C++
1
2
3
4
5
6
7
#include <stdio.h>
#include <iostream.h>
int main(void)
{
    setlocale(LC_ALL,"Rus");
    cout<<"Привет, лопухи";
}
вы сообщения то читаете? я же написал что текст теперь нормальный отображается а вот теперь текст который вводишь не коректно и скриншот вывел посмотрите

Добавлено через 13 часов 45 минут
помогите
0
Cepera
53 / 53 / 1
Регистрация: 09.03.2009
Сообщений: 178
25.03.2010, 09:35 #21
Цитата Сообщение от levgen42 Посмотреть сообщение
вот такая вот ошибка error C2664: CharToOemW: невозможно преобразовать параметр 1 из 'const char [14]' в 'LPCWSTR'
В вижуал студии у вас в настройках указан набор символов unicode, поменяйте на ascii (Здесь описано какой параметр менять), либо используйте не const char а const wchar_t, либо используйте макрос TEXT, т.е. так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <windows.h>
#include <cstring>
 
using namespace std;
 
int main()
{
 
//char message[50]; // а это поменять на
wchar_t message[50];
string lastName;
string firstName;
CharToOem(TEXT("Введите Ваше имя: "),message);
cout << message;
cin >> lastName;
CharToOem(TEXT("Введите Вашу Фамилию: "),message);
cout << message;
cin >> firstName;
CharToOem(TEXT("Здравствуйте "),message);
cout <<message<<lastName <<firstName <<"!\n";
return 0;
}
Добавлено через 22 минуты
Либо вместо С++-ных cout << и cin >> для ввода и вывода используйте майкрософтовские Console::WriteLine() и Console::ReadLine()
0
Mиxaил
534 / 439 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
25.03.2010, 13:48 #22
C++
1
2
3
4
5
#include <locale>
//========================
int main() {
      setlocale(LC_ALL,"Russian");
//========================
0
Cepera
53 / 53 / 1
Регистрация: 09.03.2009
Сообщений: 178
25.03.2010, 16:51 #23
Mиxaил, прочитатайте тему с начала
1
kravam
быдлокодер
1705 / 892 / 45
Регистрация: 04.06.2008
Сообщений: 5,524
25.03.2010, 18:26 #24
Я порекомендую автору эту тему
Отображение символа (R) в консоли

...Из всех отвечающих только easybudda произнёс слова Lucida Console

Автор, помимо написания проги тебе вручную надо будет залезть в свойства и такой шрифт установить
0
levgen42
0 / 0 / 0
Регистрация: 25.02.2010
Сообщений: 27
25.03.2010, 18:34  [ТС] #25
Цитата Сообщение от Cepera Посмотреть сообщение
В вижуал студии у вас в настройках указан набор символов unicode, поменяйте на ascii (Здесь описано какой параметр менять)
спасибо вам огромное поменял совсем чуть-чуть и заработало люди тему не читают а пишут лиж бы написать вот конкретный код для VS2008 все конкретно работает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "stdafx.h" // подключил библиотеку
#include <iostream>
#include <windows.h>
#include <string> //сдесь cstring поменял на string
 
using namespace std;
 
int main(int argc, _TCHAR* argv[])
{
 
char message[50]; // сдесь wchar_t поменял на char
string lastName;
string firstName;
CharToOem(TEXT("Введите Ваше имя: "),message);
cout << message;
cin >> lastName;
CharToOem(TEXT("Введите Вашу Фамилию: "),message);
cout << message;
cin >> firstName;
CharToOem(TEXT("Здравствуйте "),message);
cout <<message<<lastName <<" " <<firstName <<"!\n";
return 0;
}
можно тему закрыть как вы думаете или оставить может у кого еще какие вопросы возникнут
0
Cepera
53 / 53 / 1
Регистрация: 09.03.2009
Сообщений: 178
25.03.2010, 19:02 #26
Цитата Сообщение от kravam Посмотреть сообщение
помимо написания проги тебе вручную надо будет залезть в свойства и такой шрифт установить
Необязательно, средствами вижуал студии можно обойтись
ЗЫ: А по поводу шрифтов и кодировок, меня этим виндовс просто добивает!!! Вот кому в майкрософте в голову пришло привязать кодировку к шрифтам??? Меняешь шрифт, меняется и кодировка (это же дурость из дурости)
0
fasked
Эксперт С++
4975 / 2555 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
25.03.2010, 22:49 #27
Цитата Сообщение от levgen42 Посмотреть сообщение
люди тему не читают а пишут лиж бы написать
про CharToOem говорится в теме, которая есть в шапке. Люди темы не читают.
0
ureman
2 / 2 / 0
Регистрация: 27.01.2010
Сообщений: 17
31.03.2010, 09:21 #28
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iomanip>
#include <iostream>
#include <locale>
using namespace std;
 
void main()
{
    locale::global(locale("rus"));
    
    printf("Введите a "); cin>>a;
    
    cout<<"Привет";
мне помогло... из файла читает нормально, и на экран выдает
0
M128K145
Эксперт JavaЭксперт С++
8320 / 3540 / 143
Регистрация: 03.07.2009
Сообщений: 10,708
31.03.2010, 10:18 #29
Цитата Сообщение от levgen42 Посмотреть сообщение
C++
1
#include <string> //сдесь cstring поменял на string
библиотеки string.h(cstring) и string - это разные вещи и предназначены для разных вещей
cstring предназначен для использования функций обработки обычных строк(strtok, strstr, etc.), а string для работы со строками типа std::string.
0
31.03.2010, 10:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2010, 10:18
Привет! Вот еще темы с ответами:

Вывод в консольном приложении - C++
Всем доброго времени суток. Написал приложение выводящие через printf 5 строк с паузой в 1 сек. При обычном запуске всё работает хорошо....

Ошибка в консольном приложении - C++
{ class Program { public struct Point { public int X; public int Y; ...

Таймер в консольном приложении - C++
Подскажите, как сделать чтобы консольное приложение было постоянно запущено и раз в 1 минуту выполняло одну из функций? Добавлено...

Таймер в консольном приложении - C++
Всем доброго времени суток, у меня вопрос, как сделать так, чтобы программа записывала текст в файл, а, к примеру через 40 минут стирала...


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru