Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2014, 13:48   #11
8Observer8
Старожил
 
Регистрация: 02.01.2011
Сообщений: 3,328
По умолчанию

Цитата:
Сообщение от Helloween Посмотреть сообщение
Обернуть std:string в класец, который будет так же конвертировать строку к юникоду дело 5 мин
Вообще говоря, я всегда избегаю русский, так как разобраться с этими кодировками мозгов не хватает. А почему вы не посоветовали std::wstring? Не поделитесь примером "обёртки"?

Последний раз редактировалось 8Observer8; 19.09.2014 в 13:50.
8Observer8 вне форума Ответить с цитированием
Старый 19.09.2014, 13:55   #12
Helloween
Форумчанин
 
Регистрация: 24.04.2012
Сообщений: 300
По умолчанию

QString потому что это не аналог std::wstring. В std::wstring изменяется как раз способ хранения, если в std::string под 1 символ 1 байт используется, то в wstring 2 байта. Но ничто не мешает хранить юникодную строку в std::string, так же как и не юникодную в std::wstring.
Помог? Оставляем отзыв =)
Helloween вне форума Ответить с цитированием
Старый 19.09.2014, 14:21   #13
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

У мну вопрос: А зачем для кирилицы юникод? Вродь всегда в ASCII умещалась и никто не жаловался.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.09.2014, 14:29   #14
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

А зачем для кирилицы юникод? Вродь всегда в ASCII умещалась и никто не жаловался.

What is Unicode?
Unicode provides a unique number for every character,
no matter what the platform,
no matter what the program,
no matter what the language
Rififi вне форума Ответить с цитированием
Старый 19.09.2014, 14:52   #15
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Rififi
Не эт понятно. Но для крилицы и обычный однобайтовый згодится.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.09.2014, 16:08   #16
8Observer8
Старожил
 
Регистрация: 02.01.2011
Сообщений: 3,328
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Не эт понятно. Но для крилицы и обычный однобайтовый згодится.
А я и не знал


Кстати, я ещё убедился, что и std::string пришлось переводить в *char (из-за того, что setText() не принимает std::string, только *char и QString)
Код:
class clas {
public:
    std::string Stroka;
};

void Dialog::on_showButton_clicked()
{
    clas c;
    c.Stroka = "Привет!";

    ui->outputLabel->setText( c.Stroka.c_str() );
}
Ну наверное из-за специфики Qt, в этой среде лучше так написать:

Код:
class clas {
public:
    QString Stroka;
};

void Dialog::on_showButton_clicked()
{
    clas c;
    c.Stroka = "Привет!";

    ui->outputLabel->setText( c.Stroka );
}

Последний раз редактировалось 8Observer8; 19.09.2014 в 16:11.
8Observer8 вне форума Ответить с цитированием
Старый 19.09.2014, 17:10   #17
Helloween
Форумчанин
 
Регистрация: 24.04.2012
Сообщений: 300
По умолчанию

Необходимость вызывать c_str() сделана специально во избежание неявных преобразований. Всем понятно что можно было бы в std::string переопределить operator const char*() и делать вот так:
Код:
void foo(const char* s);
.................
std::string s = "o";
foo(s);
..................
Кстати в некоторых реализациях STL так и есть.
Вот что думает по этому поводу товарищ Страуструп:
"Преобразование в С-строку может быть обеспечено оператором operator const char*(), а не c_str(). Это обеспечило бы удобство неявного преобразования, но ценой всякого рода сюрпризов в тех случаях, когда такого преобразования не ожидалось."
Помог? Оставляем отзыв =)
Helloween вне форума Ответить с цитированием
Старый 19.09.2014, 21:25   #18
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но ценой всякого рода сюрпризов в тех случаях, когда такого преобразования не ожидалось
Например где?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
строка string и строка char Petyu Общие вопросы C/C++ 3 16.05.2013 00:26
Функции в классе enzaime Помощь студентам 0 20.05.2012 13:19
ошибка в классе Progsenya C# (си шарп) 6 02.04.2011 18:43
Строка состаяния или загрузачная строка Sergeu Мультимедиа в Delphi 8 27.08.2008 10:32