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

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

Восстановить пароль Регистрация
 
myxasa
14 / 14 / 1
Регистрация: 31.05.2012
Сообщений: 210
Записей в блоге: 2
04.02.2013, 00:55     Русские буквы string #1
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++
русские буквы C++
C++ русские буквы
Русские буквы C++
C++ Русские буквы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DEA7H
.NET ONLY
 Аватар для DEA7H
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
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
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
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
04.02.2013, 01:05     Русские буквы string #5
Цитата Сообщение от myxasa Посмотреть сообщение
я же в сообщении указал, что cout<<"буквы русские"; нормально, следовательно у меня locale уже есть...
Если под винду, то можете поставить шрифт Lucida Console и выставить кодовые страницы.
C++
1
2
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
И вот еще Русские шрифты в консоли
DEA7H
.NET ONLY
 Аватар для DEA7H
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
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 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
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
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
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
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++ русские буквы
C++ Русские буквы
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
Ответ Создать тему
Опции темы

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