Чтение массива из текстового файла |
Здравствуйте, гость ( Вход | Регистрация )
Чтение массива из текстового файла |
Гость_IvanKa_* |
6.4.2012, 11:31
Сообщение
#1
|
Гости |
Подскажите как проще всего (лучше и быстрее) прочитать массив флотов из текстового файла?
Флоты могут быть как "1", "1.0", "1.0е1" (без ковычек) а между ними пробел(ы), таб(ы), пустые строки (а может просто 1 пробел, а может просто конец строки) нашёл как это на паскале делается с seekeof и всё такое... но кажется на c++ както получше это можно реализовать. ЗЗЫ регулярные выражения не предлагать. ЗЗЗЫ кол-во элементов известно. к примеру при начале чтения я знаю что в файле массив 7*5000000 (тоесть 7 массивов, в каждом по 5 миллионов флотов).. ЗЗЗЫ строки могут быть разной длины. пример: Раскрывающийся текст 1 6 2.32е2 3 9.66 55.2 434.4543543543е22 232 |
|
|
Iron Bug |
6.4.2012, 12:35
Сообщение
#2
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
читать построчно и дальше sscanf-ом.
|
|
|
wiz29 |
6.4.2012, 14:10
Сообщение
#3
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
Думаю, оптимальным было бы (при относительно больших файлах) читать файл целиком в текстовый стрим и оттуда заполнят значениями то что требуется.
|
|
|
Гость_IvanKa_* |
6.4.2012, 14:54
Сообщение
#4
|
Гости |
читать построчно и дальше sscanf-ом. дык формат строки не постоянен. как там шаблон записать? не прокатит... вот когда там "пять интегеров через пробел в каждой строке" тогда понятно: fscanf(fd,"%d %d %d %d %d", i[1],i[2],i[3],i[4],i[5]) а когда строки не шаблонные?... |
|
|
Iron Bug |
6.4.2012, 17:06
Сообщение
#5
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
пример разбора строки.
Раскрывающийся текст
правда, тут нужно уточнить, все ли компиляторы читают %n как количество считанных символов. но вроде все должны читать. Сообщение отредактировал Iron Bug - 6.4.2012, 17:08 |
|
|
kwisp |
29.4.2012, 18:38
Сообщение
#6
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
можно попробовать с помощью istream_iterator или istreambuf_iterator
|
|
|
Текстовая версия | Сейчас: 29.11.2024, 6:47 |