crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Стандартная библиотека шаблонов, Проблема с русским текстом
AD
  опции профиля:
сообщение 14.3.2008, 14:30
Сообщение #1


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

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

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




Репутация:   17  


Так решил создать тему, потому что возникли другие проблемы, не связанные с Qt. В Qt-то все и решилось :)
Короче, fstream file(<string>, <flag>). Если путь к файлу содержит русские названия, то файл не открывается! Как бороться с этим?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Tonal
  опции профиля:
сообщение 14.3.2008, 15:15
Сообщение #2


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

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

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




Репутация:   17  


Какая система?
Откуда получаешь строку с именем файла?
В какой она кодировке?
Почему не использовать Qt-шные классы работы с файлами?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 14.3.2008, 18:36
Сообщение #3


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

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

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




Репутация:   17  


Цитата(Tonal @ 14.3.2008, 15:15) *
Какая система?
Откуда получаешь строку с именем файла?
В какой она кодировке?
Почему не использовать Qt-шные классы работы с файлами?

Я полагаю, что кодировка - Win1251! Не использовались Qt-function потому что этот класс был разработан до того, как стал использоваться нами Qt! Переделывать нерационально, но, пока что, еще возможно!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Tonal
  опции профиля:
сообщение 14.3.2008, 22:01
Сообщение #4


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

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

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




Репутация:   17  


Не надо предполагать - нужно знать.
Разберись с кодировками и всё получится. :)

Сообщение отредактировал Tonal - 14.3.2008, 22:01
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 18.3.2008, 8:34
Сообщение #5


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

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

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




Репутация:   17  


Цитата(Tonal @ 14.3.2008, 22:01) *
Не надо предполагать - нужно знать.
Разберись с кодировками и всё получится. :)

Кодировка того текста - Win1251! Но это ничего не дало. Где найти ошибку?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Tonal
  опции профиля:
сообщение 18.3.2008, 8:46
Сообщение #6


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

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

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




Репутация:   17  


А без Qt работает? :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 18.3.2008, 8:54
Сообщение #7


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

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

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




Репутация:   17  


Цитата(Tonal @ 18.3.2008, 8:46) *
А без Qt работает? :)

Причем здесь Qt? Не открывается файл, если в пути русский текст. Я не могу понять из-за чего. file.open(<name>, <flag>);
Кто знает, можете что-нибудь дельное подсказать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Tonal
  опции профиля:
сообщение 18.3.2008, 9:10
Сообщение #8


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

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

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




Репутация:   17  


Какой компилятор?

Вот этот код у меня нормально отрабатывает:
#include <iostream>
#include <fstream>

using std::cout;
using std::endl;

int main() {
  std::ifstream f("rus_file_проба");
  std::string s;
  while(f) {
    std::getline(f, s);
    cout<<s<<endl;
  }
}

g++ (GCC) 3.4.5 (mingw special)

Сообщение отредактировал Tonal - 18.3.2008, 9:11
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 18.3.2008, 9:18
Сообщение #9


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

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

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




Репутация:   17  


Цитата(Tonal @ 18.3.2008, 9:10) *
Какой компилятор?

Visual Studio 2005, в который встроен Qt.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Tonal
  опции профиля:
сообщение 18.3.2008, 9:29
Сообщение #10


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

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

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




Репутация:   17  


Создай новый консольный проект, и попробуй мой код.
Укажи абсолютный путь к файлу.
Если не сработает - значит кривые настройки студии.
Если сработает - ищи, в чём отличия от твоего кода. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 29.11.2024, 0:47