1 / 1 / 1
Регистрация: 16.05.2012
Сообщений: 70
|
|
1 | |
Греческие буквы в названии файла12.08.2015, 18:02. Показов 2603. Ответов 47
Метки нет (Все метки)
Есть файл в кодировке ISO8859-7 в котором построчно хранятся названия файлов которые необходимо прочитать. В названиях этих файлов встречаются спецсимволы (π; μ; ρ). Проблема в их не корректном чтении или в открытии файлов.
Использую ifstream для работы с файлами, и getline для чтения из файла. При выводе в консоль "пи" превращается в "p" и т.д.
0
|
12.08.2015, 18:02 | |
Ответы с готовыми решениями:
47
Греческие буквы в консольном приложении Иероглифы в названии файла Проверка на существование файла с русскими символами в названии Очереди: одна должна содержать гласные буквы, другая - согласные буквы; чтение из файла |
117 / 121 / 42
Регистрация: 25.08.2012
Сообщений: 1,294
|
|
12.08.2015, 18:05 | 2 |
SuperAgent007, попробуйте воспользоваться wifstream
0
|
1 / 1 / 1
Регистрация: 16.05.2012
Сообщений: 70
|
|
12.08.2015, 18:48 [ТС] | 3 |
tnk500, буду благодарен, если распишите подробнее)
0
|
117 / 121 / 42
Регистрация: 25.08.2012
Сообщений: 1,294
|
|
12.08.2015, 18:52 | 4 |
SuperAgent007, а чего тут расписывать? Просто используйте wifstream вместо ifstream, wstring вместо string. Функции-члены — те же самые. getline тот же самый
Вот поподробней: http://stackoverflow.com/a/26153212/4886665 (если простое чтение не сработает, дописывайте функцию imbue из примера).
0
|
1 / 1 / 1
Регистрация: 16.05.2012
Сообщений: 70
|
|
12.08.2015, 19:30 [ТС] | 5 |
tnk500, не могу найти функцию для открытия файла имя которого хранится в wchar_t
0
|
117 / 121 / 42
Регистрация: 25.08.2012
Сообщений: 1,294
|
|
12.08.2015, 20:05 | 6 |
SuperAgent007, конструктор и open не открывают файлы?
0
|
1 / 1 / 1
Регистрация: 16.05.2012
Сообщений: 70
|
||||||
12.08.2015, 20:13 [ТС] | 7 | |||||
tnk500, вот этот код не работает если fname wstring.
0
|
1 / 1 / 1
Регистрация: 16.05.2012
Сообщений: 70
|
|
12.08.2015, 21:28 [ТС] | 9 |
lss, но в char разве можно записать спецсимволы вроде π; μ; ρ (первый это пи, просто почему-то здесь так отображается)?
0
|
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
|
|
12.08.2015, 21:54 | 10 |
Если они однобайтовые, то почему нет? Я только не знаю: допускает ли ОС такие символы в именах файлов.
Добавлено через 12 минут А сами файлы где? Как их имена выглядят? Как задавались?
0
|
Заблокирован
|
|
12.08.2015, 21:58 | 11 |
0
|
1 / 1 / 1
Регистрация: 16.05.2012
Сообщений: 70
|
|
12.08.2015, 22:20 [ТС] | 12 |
lss, Файлы лежат в папке рядом, имена у них уже заданы, но можно и самому через таблицу символов им присвоить такие имена. Имена выглядят так: π001.txt; μ255.txt; ρ010.txt (это для примера).
В Windows возможны такие имена Добавлено через 3 минуты IrineK, с WinAPI к сожалению не дружу, оставлю это на крайний случай. Есть ли возможность избежать использования WinAPI?
0
|
Заблокирован
|
|
12.08.2015, 22:28 | 13 |
0
|
1 / 1 / 1
Регистрация: 16.05.2012
Сообщений: 70
|
|
12.08.2015, 22:32 [ТС] | 14 |
IrineK, а более хардкорных вариантов чистый C++ не имеет?
0
|
12.08.2015, 22:49 | 16 |
Попробуйте библиотеки Boost: http://www.boost.org/doc/libs/... /index.htm для Unicode символов в названиях файлов
0
|
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
|
||||||
12.08.2015, 23:24 | 17 | |||||
Вот так, у меня, в студии, файл открывается (имя файла в коде и в папке: μ255.txt, здесь так отображается):
0
|
117 / 121 / 42
Регистрация: 25.08.2012
Сообщений: 1,294
|
|
12.08.2015, 23:33 | 18 |
lss, потому что в реализация стандартной библиотеки от микрософт содержит констркторы для wchar_t*. Думаю, ТС пользуется другим компилятором
Добавлено через 2 минуты SuperAgent007, короче. 1) Либо воспользуйтесь boost::fstream, как заметил Dani; 2) Либо поставьте Visual Studio (в любом случае не помешает); 3) Либо воспользуйтесь функцией OemToChar, ну тут не гарантирую.
0
|
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
|
|
13.08.2015, 03:46 | 20 |
0
|
13.08.2015, 03:46 | |
13.08.2015, 03:46 | |
Помогаю со студенческими работами здесь
20
В текстовом файле t записаны буквы латинского алфавита и цифры. Занести в текстовый файл h из текстового файла t только латинские буквы. Builder xe2 + SQLite + русские буквы в названии файла базы Греческие буквы не отображаются на других ПК Вывести греческие буквы в richTextBox Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |