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

C++

Войти
Регистрация
Восстановить пароль
 
 
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
#1

Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String - C++

29.10.2015, 00:27. Просмотров 930. Ответов 30

Есть строка Glib::ustring, пытался её конвертировать в sf::String, и вроде бы всё работает без особых костылей, но как добрался до кириллицы, нифига ничего не работает.
Придумал такой костыль:
C++
1
2
3
4
5
6
7
sf::String convert_from_ustring (const Glib::ustring& source_string) 
{
    static std::wstringstream ss ;
    ss.clear() ;
    ss << source_string ;
    return sf::String(ss.str()) ;
}
У кого есть винда (под Linux'ами вроде пашет, но тоже лучше потестить) с соответствующими библиотеками (sfml и glibmm) просьба протестировать этот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <fstream>
#include <sstream>
#include <SFML/Graphics.hpp>
#include <glibmm.h>
 
 
namespace sfml_tools
{
    //TODO: multithread version
    sf::String convert_from_ustring (const Glib::ustring& source_string)
    {
        static std::wstringstream ss ;
        ss.clear() ;
        ss << source_string ;
        return sf::String(ss.str()) ;
    }
}
 
 
 
 
int main()
{
    using sfml_tools::convert_from_ustring ;
    //std::locale::global(std::locale("ru_RU.UTF-8"));
    std::ifstream file("input.txt") ; //Файл в кодировке utf-8 с русским текстом
    if ( !file.is_open() )
        return -1 ;
 
    std::string line ;
    std::getline ( file , line ) ;
 
    Glib::ustring u_str(line);
    sf::String s( convert_from_ustring(u_str) ) ;
 
    sf::RenderWindow wnd( sf::VideoMode( 800 , 600 ) , "SFML-tools library tests" ) ;
    wnd.setTitle(s);
 
    sf::Font fnt ;
    //Свой шрифт, поддерживающий кириллицу, поставьте
    if ( !fnt.loadFromFile("UbuntuMono-B.ttf") ) {
        return -1 ;
    }
 
    sf::Text txt ( s , fnt , 16 )  ;
    txt.setColor(sf::Color::White);
 
    while( wnd.isOpen() ){
        sf::Event event ;
        while( wnd.pollEvent( event ) ){
            if( event.type == sf::Event::Closed )
                wnd.close() ;
        }
        wnd.clear( sf::Color::Black ) ;
        wnd.draw(txt) ;
        wnd.display() ;
    }
}
Здесь цепочка преобразований std::string -> Glib::ustring -> sf::String.
Нормально ли выводится заголовок и текст в окне.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2015, 00:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String (C++):

Дедушка, а что это за костыль у тебя? - C++
А что это за костыли такие?Прошу помощи олдфагов.Можно будет составить список хотя бы 10 самых самых и привести примеры исходного кода.

Memo->Lines[1] - что за тип? костыль? C++ Builder - C++ Builder
Пояснение: bus03_eightschools.time - int Lines - &quot;06:30&quot; Как записать эту строчку правильно: bus03_eightschools.time =...

Необходимо протестировать костыль - C++
#include &lt;iostream&gt; #include &lt;type_traits&gt; template &lt; typename ReturnType , typename ... ArgsTypePack &gt; void *...

Конвертирование из vector<string> в map - C++
Здравствуйте! Подскажите, пожалуйста, как из vector&lt;string&gt; считать элементы вектора в map. Изначально дан текстовый файл, в котором...

Конвертирование float/int to string - C++
Здравствуйте, я пишу программу на dev-c++ и мне надо конвертировать число в string.Я просто не знаю как это сделать в dev-c++. Помогите...

Glib.h в Windows - C++
Доброго времени суток! Столкнулся с маленькой проблемой: не компилируется программа с библиотекой glib.h в windows (MinGW). Под debian...

30
gru74ik
Модератор
Эксперт CЭксперт С++
4195 / 1843 / 198
Регистрация: 20.02.2013
Сообщений: 4,989
Записей в блоге: 22
29.10.2015, 11:48 #16
Цитата Сообщение от Croessmah Посмотреть сообщение
Что команда pkg-config --libs glibmm-2.4 в консоли выдает(без кавычек)?
команда не найдена выдаёт

У меня её и нету, наверное. Ща попробую поставить.
1
gru74ik
Модератор
Эксперт CЭксперт С++
4195 / 1843 / 198
Регистрация: 20.02.2013
Сообщений: 4,989
Записей в блоге: 22
29.10.2015, 11:59 #17
Цитата Сообщение от Croessmah Посмотреть сообщение
Что команда pkg-config --libs glibmm-2.4 в консоли выдает(без кавычек)?
Поставил. Вот что выдала:
1
Миниатюры
Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String  
gru74ik
Модератор
Эксперт CЭксперт С++
4195 / 1843 / 198
Регистрация: 20.02.2013
Сообщений: 4,989
Записей в блоге: 22
29.10.2015, 12:03 #18
Теперь всего 4 ошибки выдало, а не 34, как в прошлый раз. Но ругается на ту же строчку:
1
Миниатюры
Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String  
gru74ik
Модератор
Эксперт CЭксперт С++
4195 / 1843 / 198
Регистрация: 20.02.2013
Сообщений: 4,989
Записей в блоге: 22
29.10.2015, 12:04 #19
Croessmah, ты уже наверное 100 раз пожалел, что у меня помощи попросил
Прости меня, друг, как-то рукожопенько у меня всё это пока выходит.
1
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
29.10.2015, 16:21  [ТС] #20
Цитата Сообщение от gru74ik Посмотреть сообщение
ты уже наверное 100 раз пожалел, что у меня помощи попросил
глупо жалеть о своих решениях. Только настроение портить
Цитата Сообщение от gru74ik Посмотреть сообщение
Прости меня, друг, как-то рукожопенько у меня всё это пока выходит.
Всё нормально будет. Поставлю вечером виртуалку, отпишусь
0
Kastaneda
Jesus loves me
Эксперт С++
4688 / 2892 / 236
Регистрация: 12.12.2009
Сообщений: 7,353
Записей в блоге: 2
Завершенные тесты: 1
30.10.2015, 13:17 #21
gru74ik, в msys pacman используется? Это дефолтный менеджер или прикручивается?
0
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
30.10.2015, 13:39  [ТС] #22
Цитата Сообщение от Kastaneda Посмотреть сообщение
Это дефолтный менеджер или прикручивается?
по дефолту стоит
2
gru74ik
Модератор
Эксперт CЭксперт С++
4195 / 1843 / 198
Регистрация: 20.02.2013
Сообщений: 4,989
Записей в блоге: 22
30.10.2015, 13:45 #23
Цитата Сообщение от Kastaneda Посмотреть сообщение
gru74ik, в msys pacman используется? Это дефолтный менеджер или прикручивается?
pacman дефолтный в msys2
1
Kastaneda
30.10.2015, 13:47
  #24

Не по теме:

круто, я в ArchLinux'е с ним одно время намучился, очень он сам себя обновлять не любил не умел

0
gru74ik
30.10.2015, 19:10
  #25

Не по теме:

Цитата Сообщение от Kastaneda Посмотреть сообщение
в ArchLinux'е с ним одно время намучился
ArchLinux, говорят, вообще из всех дистрибутивов GNU/Linux один из самых заморочных.

0
Kastaneda
30.10.2015, 19:16
  #26

Не по теме:

Цитата Сообщение от gru74ik Посмотреть сообщение
ArchLinux, говорят, вообще из всех дистрибутивов GNU/Linux один из самых заморочных.
На самом деле один из самых простых. Самый замороченный Ubuntu и подобные. Простой пример - даже чтоб поставить тот же MySQL Ubuntu тут же в терминале создаст диалог, спросит пароль, еще что-нибудь и насует своих настроек в конфиг, которые ты потом руками будешь оттуда выкавыривать. Archlinux же молча поставит тебе MySQL с пустым конфигом, который ты потом как хочешь так и правишь. Простота в чистом виде

0
gru74ik
30.10.2015, 20:55
  #27

Не по теме:

Цитата Сообщение от Kastaneda Посмотреть сообщение
Простота в чистом виде
Ну видишь, кому-то надо "делай ровно то, что тебе сказали, нефиг отсебятину всякую пороть" (ArchLinux), а другому "фигачь отсебятину, но чтобы всё работало из коробки, не хочу разбираться во всех этих тонкостях" (Ubuntu).

0
DrOffset
7376 / 4453 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
30.10.2015, 20:56 #28
Цитата Сообщение от Croessmah Посмотреть сообщение
Нормально ли выводится заголовок и текст в окне.
Проверил. Нормально.

Пруф
1
Миниатюры
Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String  
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
30.10.2015, 21:53  [ТС] #29
Цитата Сообщение от DrOffset Посмотреть сообщение
Проверил. Нормально.
проверяли вариант из первого поста или
Цитата Сообщение от Croessmah Посмотреть сообщение
Сделал так
???
0
DrOffset
7376 / 4453 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
31.10.2015, 02:11 #30
Цитата Сообщение от Croessmah Посмотреть сообщение
проверяли вариант из первого поста
Да. Из первого поста.
1
31.10.2015, 02:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2015, 02:11
Привет! Вот еще темы с ответами:

Асинхронные очереди Glib - C++
Всем привет! Не уверен в своём навыке понимания, решил воспользоваться библиотекой glib. Потребовалась реализация передачи сообщений от...

c++ string конвертирование - C++/CLI WinForms
есть string1 = 12.35.40 типо время надо сравнить с string2 = 14.42.25 тоже типо время и узнать разницу между ними. по идее будет где то...

Конвертирование String в Thickness - C# WPF
Есть textbox с биндом на свойство типа thickness. но автоматом не ковертит. на ввод 1,2,3,4 - никакой реакции. &lt;TextBox...

Конвертирование double to string. - C#
1. при конвертирование double to string, получається разделитель между целой и дробной частью кома, а нужно точку есть 1,22 а нужно 1.22...


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

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

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