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

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

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

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

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

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

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

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

Не понимает русские буквы - C++
Здравствуйте, wchar_t t_in; wcin.getline(t_in, 20);Английские передаю,в массив записываються: 97('a'), а вот русские передаю,массив...

Русские буквы в консоле - C++
Привет. Совсем недавно начал изучать C++ и тут такое дело... //Заменить все точки в строке восклицательным знаком... ...

Префикс L и русские буквы - C++
Простой файл: #include &lt;iostream&gt; #include &lt;locale&gt; using namespace std; int main() { setlocale(LC_ALL,...

не фильтрует русские буквы - C++
Здравствуйте! Такая проблема... Вводится строка, пользоватль выбирает фильтр и вместо букв или цыфр вставляются пробелы... С латиницей, с...

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

Не выводятся русские буквы - C++
#include &lt;iostream&gt; using namespace std; int mul (int x, int y); // прототип функции mul() int main() ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DEA7H
.NET ONLY
62 / 62 / 1
Регистрация: 05.10.2011
Сообщений: 495
04.02.2013, 00:57     Русские буквы string #2
Сразу вставить в Main:
C++
1
setlocale(LC_ALL,"Rus");
myxasa
14 / 14 / 1
Регистрация: 31.05.2012
Сообщений: 210
Записей в блоге: 2
04.02.2013, 00:59  [ТС]     Русские буквы string #3
Цитата Сообщение от DEA7H Посмотреть сообщение
Сразу вставить в Main:
C++
1
setlocale(LC_ALL,"Rus");
я же в сообщении указал, что cout<<"буквы русские"; нормально, следовательно у меня locale уже есть...
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,731
04.02.2013, 01:02     Русские буквы string #4
Цитата Сообщение от myxasa Посмотреть сообщение
я же в сообщение указал, что cout<<"буквы русские"; нормально, следовательно у меня locale уже есть...
у тебя ввод не локализован конвертнуть надо строку
посмотри
OemToChar
http://www.vsokovikov.narod.ru/New_M..._oemtochar.htm
CharToOem
http://www.vsokovikov.narod.ru/New_M..._chartooem.htm
Croessmah
Модератор
Эксперт CЭксперт С++
13052 / 7315 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 1
04.02.2013, 01:05     Русские буквы string #5
Цитата Сообщение от myxasa Посмотреть сообщение
я же в сообщении указал, что cout<<"буквы русские"; нормально, следовательно у меня locale уже есть...
Если под винду, то можете поставить шрифт Lucida Console и выставить кодовые страницы.
C++
1
2
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
И вот еще Русские шрифты в консоли
DEA7H
.NET ONLY
62 / 62 / 1
Регистрация: 05.10.2011
Сообщений: 495
04.02.2013, 01:07     Русские буквы string #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;
}
myxasa
14 / 14 / 1
Регистрация: 31.05.2012
Сообщений: 210
Записей в блоге: 2
04.02.2013, 01:11  [ТС]     Русские буквы string #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);
....
Croessmah
Модератор
Эксперт CЭксперт С++
13052 / 7315 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 1
04.02.2013, 01:15     Русские буквы string #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?
MrGluck
Модератор
Эксперт CЭксперт С++
7163 / 4329 / 632
Регистрация: 29.11.2010
Сообщений: 11,751
04.02.2013, 02:23     Русские буквы string #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;
}
myxasa
14 / 14 / 1
Регистрация: 31.05.2012
Сообщений: 210
Записей в блоге: 2
04.02.2013, 11:56  [ТС]     Русские буквы string #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?
каракули пишутся
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,731
04.02.2013, 13:13     Русские буквы string #11
Цитата Сообщение от myxasa Посмотреть сообщение
каракули пишутся
каракули пишутся потому что у русских букв,в отличие от английских куча кодировок
в данном случае ты пишешь в 1251 попробуй в 866
определись кто будет читать твой файл и от этого танцуй свой файл прога всегда прочитает
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.02.2013, 13:14     Русские буквы string
Еще ссылки по теме:

Русские буквы из файла. - C++
Пользуюсь Borland C++5.02. Пытаюсь написать опросник. А компилятор не хочет с файла выводить русские буквы из файла выводит на консоль ...

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

Английские и русские буквы. - C++
Здравствуйте! Подскажите пожалуйста, как в С отличить русские буквы от английских? Я думаю что надо оперировать с кодами букв, но как...

строки, русские буквы!!! - C++
Дано предложение. Напечатать все его буквы &quot;и&quot;. но ведь С не знает русских букв??? помогите написать прогу, очень прошу)))

Русские буквы в c++ char - C++
Здравствуйте, уже все облазил так ничего не нашел и не понял, нужно понять одну простую вещь, необходимо ввести с клавиатуры русское слово...


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

Или воспользуйтесь поиском по форуму:
myxasa
14 / 14 / 1
Регистрация: 31.05.2012
Сообщений: 210
Записей в блоге: 2
04.02.2013, 13:14  [ТС]     Русские буквы string #12
Цитата Сообщение от ValeryS Посмотреть сообщение
каракули пишутся потому что у русских букв,в отличие от английских куча кодировок
в данном случае ты пишешь в 1251 попробуй в 866
определись кто будет читать твой файл и от этого танцуй свой файл прога всегда прочитает
все понял.. спасибо !
Yandex
Объявления
04.02.2013, 13:14     Русские буквы string
Ответ Создать тему
Опции темы

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