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

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

Войти
Регистрация
Восстановить пароль
 
myxasa
14 / 14 / 1
Регистрация: 31.05.2012
Сообщений: 210
Записей в блоге: 2
#1

Русские буквы string - C++

04.02.2013, 00:55. Просмотров 1213. Ответов 11
Метки нет (Все метки)

C++
1
2
3
4
5
string new_login;
 
getline(cin,new_login);
 
cout<<new_login;
выводит хрень...

C++
1
если cout<<"ыпыв"; то все нормально....
как сделать, что русские буквы отображались..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.02.2013, 00:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Русские буквы string (C++):

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

Русские буквы - C++
Суть такая: надо записать в файл название модуля. Для модулей с английским названием и путём до них он пишет нормально, а на русском...

Русские буквы - C++
Всем добрый день. Необходимо написать программу, что бы она считала количество символов, с которых начинаются слова (например, &quot;привет,...

Русские буквы в С - C++
помогите разобраться с алфавитом в с как сделать что бы когда я ввожу русские буквы то компилятор не распознает их и я не могу работать с...

Русские буквы в C++ - C++
Помогите исправить, спасибо. Доброго времен суток! Я написал программу с Русскими буквами. Для ввода и вывода Русских букв,...

Русские буквы - C++
Ребят всем привет!!! Подскажите мне пожалуйста такую вещь,хочу в С++ чтобы на русском выводилось,компилирую в Dev C++,у меня каляки...

11
DEA7H
.NET ONLY
64 / 64 / 1
Регистрация: 05.10.2011
Сообщений: 495
04.02.2013, 00:57 #2
Сразу вставить в Main:
C++
1
setlocale(LC_ALL,"Rus");
0
myxasa
14 / 14 / 1
Регистрация: 31.05.2012
Сообщений: 210
Записей в блоге: 2
04.02.2013, 00:59  [ТС] #3
Цитата Сообщение от DEA7H Посмотреть сообщение
Сразу вставить в Main:
C++
1
setlocale(LC_ALL,"Rus");
я же в сообщении указал, что cout<<"буквы русские"; нормально, следовательно у меня locale уже есть...
0
ValeryS
Модератор
6709 / 5118 / 482
Регистрация: 14.02.2011
Сообщений: 17,213
04.02.2013, 01:02 #4
Цитата Сообщение от myxasa Посмотреть сообщение
я же в сообщение указал, что cout<<"буквы русские"; нормально, следовательно у меня locale уже есть...
у тебя ввод не локализован конвертнуть надо строку
посмотри
OemToChar
http://www.vsokovikov.narod.ru/New_MSDN_API/Strings/fn_oemtochar.htm
CharToOem
http://www.vsokovikov.narod.ru/New_MSDN_API/Strings/fn_chartooem.htm
0
Croessmah
Ушел
Эксперт CЭксперт С++
13554 / 7705 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
04.02.2013, 01:05 #5
Цитата Сообщение от myxasa Посмотреть сообщение
я же в сообщении указал, что cout<<"буквы русские"; нормально, следовательно у меня locale уже есть...
Если под винду, то можете поставить шрифт Lucida Console и выставить кодовые страницы.
C++
1
2
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
И вот еще Русские шрифты в консоли
1
DEA7H
.NET ONLY
64 / 64 / 1
Регистрация: 05.10.2011
Сообщений: 495
04.02.2013, 01:07 #6
Цитата Сообщение от myxasa Посмотреть сообщение
я же в сообщении указал, что cout<<"буквы русские"; нормально, следовательно у меня locale уже есть...
Сразу не понял! Тогда вот:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, ".1251");
    string st;
    cin>>st;
    int cp=GetConsoleCP();
    SetConsoleCP(1251);
    cout<<st;
    SetConsoleCP(cp);
    system("pause");
 
    return 0;
}
1
myxasa
14 / 14 / 1
Регистрация: 31.05.2012
Сообщений: 210
Записей в блоге: 2
04.02.2013, 01:11  [ТС] #7
Круто! )

а как русские буквы в файл записать(там хрень пишется)? OemToChar юзать или чего?
C++
1
2
3
4
5
6
7
string new_login;
....
 
   FILE *f;
     f = fopen("settings.ini", "w+");
     fputs(new_login.c_str(),f);
....
0
Croessmah
Ушел
Эксперт CЭксперт С++
13554 / 7705 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
04.02.2013, 01:15 #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
#include <Windows.h>
#include <stdio.h>
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    std::string str;
    std::getline(std::cin,str);
   FILE *f;
     f = fopen("settings.ini", "w+");
     fputs(str.c_str(),f);
      fclose(f);
}
все пишется вроде бы. А Вы уверены, что хотите в стиле Си работать с файлами и в тоже время со string?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7492 / 4607 / 693
Регистрация: 29.11.2010
Сообщений: 12,603
04.02.2013, 02:23 #9
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <locale>
#include <string>
 
int main()
{
    std::locale::global(std::locale("") );
    std::string new_login;
    std::getline(std::cin, new_login);
    std::cout << new_login;
}
1
myxasa
14 / 14 / 1
Регистрация: 31.05.2012
Сообщений: 210
Записей в блоге: 2
04.02.2013, 11:56  [ТС] #10
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
#include <Windows.h>
#include <stdio.h>
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    std::string str;
    std::getline(std::cin,str);
   FILE *f;
     f = fopen("settings.ini", "w+");
     fputs(str.c_str(),f);
      fclose(f);
}
все пишется вроде бы. А Вы уверены, что хотите в стиле Си работать с файлами и в тоже время со string?
каракули пишутся
0
ValeryS
Модератор
6709 / 5118 / 482
Регистрация: 14.02.2011
Сообщений: 17,213
04.02.2013, 13:13 #11
Цитата Сообщение от myxasa Посмотреть сообщение
каракули пишутся
каракули пишутся потому что у русских букв,в отличие от английских куча кодировок
в данном случае ты пишешь в 1251 попробуй в 866
определись кто будет читать твой файл и от этого танцуй свой файл прога всегда прочитает
1
myxasa
14 / 14 / 1
Регистрация: 31.05.2012
Сообщений: 210
Записей в блоге: 2
04.02.2013, 13:14  [ТС] #12
Цитата Сообщение от ValeryS Посмотреть сообщение
каракули пишутся потому что у русских букв,в отличие от английских куча кодировок
в данном случае ты пишешь в 1251 попробуй в 866
определись кто будет читать твой файл и от этого танцуй свой файл прога всегда прочитает
все понял.. спасибо !
0
04.02.2013, 13:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.02.2013, 13:14
Привет! Вот еще темы с ответами:

русские буквы - C++
Иероглифы вместо русских слов.Что делать??? (Пользуюсь С++ Builder 2010)

Русские буквы - C++
такая ситуация : написал в консоле карточную игру, для обозначения значков мастей нужна строчка setlocale(LC_ALL,&quot;rus&quot;); а надо еще и...

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

Не распознает русские буквы. - C++
// vc.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; // Дописывает в файл фамилию, имя и номер...


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

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

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