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

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

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

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

Не выводится русский текст в MS visual studio
я подключила setlocale(LC_CTYPE,"Russian"); SetConsoleCP(1251);...

Xcode , С++ и русский язык: как вывести в файл русский текст без сбитой кодировки?
Как сделать так, чтобы после некоторых манипуляций в файл выводился русский...

Ошибка в консольном приложении
{ class Program { public struct Point { ...

Тетрис в консольном приложении
Помогите с написанием тетриса в консоли, пожалуйста. Как сделать поле, и чтобы...

CAsyncSocket в консольном приложении
Пишу простейшие приложения (сервер, клиент) с использованием CAsyncSocket....

Кириллица в консольном приложении C++
Приветствую вас, дорогие друзья. Подскажите пожалуйста, какой код нужно...

28
fasked
Эксперт С++
4976 / 2556 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
24.03.2010, 10:44 #2
http://www.cyberforum.ru/cpp-beginners/thread10662.html
0
PointsEqual
ниначмуроФ
838 / 522 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
24.03.2010, 14:13 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <windows.h>
using namespace std;
 
int main()
{
char str[20]="Привет";
char message[20];
CharToOem(str,message);
cout<<message;
    return 0;
}
0
levgen42
0 / 0 / 0
Регистрация: 25.02.2010
Сообщений: 27
24.03.2010, 14:19  [ТС] #4
тема есть но немножко не та и оставлять комменты там нельзя больше так что продолжим обсуждения!!! допустим я нашел как выводить текст кирилицей через оператор setlocale( LC_ALL,"Russian" ); но есть одно "НО" тот текст теперь нормально отображается, а тот который я ввожу допустим свое имя, как показано на верхнем скриншоте он выводится каракулями
0
PointsEqual
ниначмуроФ
838 / 522 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
24.03.2010, 14:20 #5
levgen42, код выше смотри, там работает все
0
levgen42
0 / 0 / 0
Регистрация: 25.02.2010
Сообщений: 27
24.03.2010, 14:25  [ТС] #6
Цитата Сообщение от PointsEqual Посмотреть сообщение
levgen42, код выше смотри, там работает все
если не трудно пропиши его тогда сдесь а по ходу разберусь

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdafx.h>
#include <iostream>
#include <string> 
using namespace std;
 
int main ()
{
    string lastName, firstName;
    cout << "Введите Ваше имя: ";
    cin >> lastName;
    cout <<"Введите Вашу Фамилию: ";
    cin >> firstName;
    cout <<"Здравствуйте " <<lastName <<" " <<firstName <<"!\n";
    return 0;
    }
0
PointsEqual
ниначмуроФ
838 / 522 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
24.03.2010, 14:35 #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <windows.h>
#include <cstring>
 
using namespace std;
 
int main()
{
 
char message[50];
string lastName;
string firstName;
CharToOem("Введите Ваше имя: ",message);
cout << message;
cin >> lastName;
CharToOem("Введите Вашу Фамилию: ",message);
cout << message;
cin >> firstName;
CharToOem("Здравствуйте ",message);
cout <<message<<lastName <<firstName <<"!\n";
return 0;
}
0
levgen42
0 / 0 / 0
Регистрация: 25.02.2010
Сообщений: 27
24.03.2010, 14:44  [ТС] #8
fatal error C1010: непредвиденный конец файла во время поиска предкомпилированного заголовка. Возможно, вы забыли добавить директиву "#include "stdafx.h"" в источник. В чем сейчас проблема

Добавлено через 53 секунды
компилирую на VS2008

Добавлено через 1 минуту
Цитата Сообщение от PointsEqual Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <windows.h>
#include <cstring>
 
using namespace std;
 
int main()
{
 
char message[50];
string lastName;
string firstName;
CharToOem("Введите Ваше имя: ",message);
cout << message;
cin >> lastName;
CharToOem("Введите Вашу Фамилию: ",message);
cout << message;
cin >> firstName;
CharToOem("Здравствуйте ",message);
cout <<message<<lastName <<firstName <<"!\n";
return 0;
}
Вы у себя еекомпилировали?
0
PointsEqual
ниначмуроФ
838 / 522 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
24.03.2010, 14:49 #9
добавь те дерективы которые необходимы
да, компилировал
0
levgen42
0 / 0 / 0
Регистрация: 25.02.2010
Сообщений: 27
24.03.2010, 14:49  [ТС] #10
вот такая вот ошибка error C2664: CharToOemW: невозможно преобразовать параметр 1 из 'const char [14]' в 'LPCWSTR'
0
PointsEqual
ниначмуроФ
838 / 522 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
24.03.2010, 14:50 #11
IDE code blocks

Добавлено через 31 секунду
Цитата Сообщение от levgen42 Посмотреть сообщение
вот такая вот ошибка error C2664: CharToOemW: невозможно преобразовать параметр 1 из 'const char [14]' в 'LPCWSTR'
не могу помоч
0
levgen42
0 / 0 / 0
Регистрация: 25.02.2010
Сообщений: 27
24.03.2010, 14:52  [ТС] #12
и если у меня стоит как вы поставили #include <cstring>
у меня тоже ошибку выдает а когда #include <string>
то выдает только ошибку вышеуказанную
0
PointsEqual
ниначмуроФ
838 / 522 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
24.03.2010, 14:53 #13
да, можно просто string
0
levgen42
0 / 0 / 0
Регистрация: 25.02.2010
Сообщений: 27
24.03.2010, 16:03  [ТС] #14
ну ладно все равно спасибо может кто еще поможет

Добавлено через 1 час 9 минут
помогите кто небудь!!!!!!!!!!!!!!!!!!!!!!!!!!
0
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,231
24.03.2010, 16:14 #15
Цитата Сообщение от levgen42 Посмотреть сообщение
#include <cstring>
вместо этого
C++
1
#include <string>
0
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Эксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,231
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
25.03.2010, 08:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2010, 08:41
Привет! Вот еще темы с решениями:

MessageBox в консольном приложении
сделал так чтоб выводило текст из файла в консоль #include &quot;stdafx.h&quot;...

Графика в консольном приложении VS
подскажите как построить систему координат X,Y. в консольном приложении.Какие...

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

Вывод в консольном приложении
Мне надо после 19 вернуться на прежнюю строку. Что бы после 19 числа начали...


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

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

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