crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

Trisch
  опции профиля:
сообщение 31.12.2013, 5:16
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 379
Регистрация: 30.1.2012
Из: Запорожье
Пользователь №: 3169

Спасибо сказали: 24 раз(а)




Репутация:   0  


У меня fstream::open() не может открыть файлы в пути которых кириллица. Это можно как то исправить?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 5.1.2014, 11:07
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Trisch @ 2.1.2014, 5:16) *
сначала преобразуем QString
какой QString? у тебя нет такого объекта. Метод toStdWString() - не статический, он требует объект.


Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Trisch
  опции профиля:
сообщение 5.1.2014, 11:58
Сообщение #3


Активный участник
***

Группа: Участник
Сообщений: 379
Регистрация: 30.1.2012
Из: Запорожье
Пользователь №: 3169

Спасибо сказали: 24 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 5.1.2014, 12:07) *
Цитата(Trisch @ 2.1.2014, 5:16) *
сначала преобразуем QString
какой QString? у тебя нет такого объекта. Метод toStdWString() - не статический, он требует объект.


А если так?
QString str("/test");
const wchar_t* filename = str.toStdWString().data();


ну это сейчас не важно.
Сейчас я делаю, примерно, так:
fstring file;
QString str("/test");
file.open(str.toStdString().data(), std::ios::binary | ios::in | ios::out);


Под Linux все работает. А вот под windows не хочет работать :(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 5.1.2014, 20:54
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(Trisch @ 5.1.2014, 12:58) *
Под Linux все работает. А вот под windows не хочет работать :(

У меня была подобная проблема.
Попробуй в две строки:
QString str("/test");
std::string tmp(str.toStdString());
file.open(tmp.data(), std::ios::binary | ios::in | ios::out);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Trisch
  опции профиля:
сообщение 6.1.2014, 18:38
Сообщение #5


Активный участник
***

Группа: Участник
Сообщений: 379
Регистрация: 30.1.2012
Из: Запорожье
Пользователь №: 3169

Спасибо сказали: 24 раз(а)




Репутация:   0  


Цитата(AD @ 5.1.2014, 20:54) *
Цитата(Trisch @ 5.1.2014, 12:58) *
Под Linux все работает. А вот под windows не хочет работать :(

У меня была подобная проблема.
Попробуй в две строки:
QString str("/test");
std::string tmp(str.toStdString());
file.open(tmp.data(), std::ios::binary | ios::in | ios::out);



А чем две строки отличаются от одной строки?

Я решил проблему через str.toLocal8Bit().data(), а перед этим получив str из wchar_t*, а еще перед этим получив объект типа wchar_t* из str1.toStdWString().data().
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 30.6.2025, 9:38