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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2019, 04:09   #1
archerix
Форумчанин
 
Регистрация: 13.09.2019
Сообщений: 119
По умолчанию Считывание данных из файла, С++

Здравствуйте, народ

Никак не могу сообразить, как это поизящнее сделать. Имеется типовая задача считывания из файла числовых данных. Например, аргументов и значений какой-то функции, записанных там двумя колонками через пробелы. Ну, и потом надо рассовать это в два массива.

Если я заранее знаю пределы и шаг, то есть сколько там строчек будет в файле, то все просто. Описываем два массива нужной размерности и заполняем. А если это заранее неизвестно, как выкручиваться?

Можно, конечно, сначала пробежать по файлу один раз, пока не будет достигнут конец, посчитать строчки, создать динамические массивы и их заполнить во втором проходе. Но как-то это все некрасиво, двойная работа

Последний раз редактировалось archerix; 13.12.2019 в 04:11.
archerix вне форума Ответить с цитированием
Старый 13.12.2019, 10:20   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,549
По умолчанию

Либо как вы написали - пробежаться по файлу и посчитать количество. Либо использовать список.
Arigato вне форума Ответить с цитированием
Старый 13.12.2019, 12:23   #3
archerix
Форумчанин
 
Регистрация: 13.09.2019
Сообщений: 119
По умолчанию

Или объявить массивы гигантского размера, чтобы точно хватило - но это как-то не эстетично
archerix вне форума Ответить с цитированием
Старый 14.12.2019, 03:14   #4
archerix
Форумчанин
 
Регистрация: 13.09.2019
Сообщений: 119
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Либо использовать список.
А почему именно список, а не вектор?
archerix вне форума Ответить с цитированием
Старый 14.12.2019, 10:43   #5
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Цитата:
Сообщение от archerix Посмотреть сообщение
записанных там двумя колонками через пробелы.(
Раз присутствуют пробелы, значит, инфа в файле, хоть она и цифровая, представлена в текстовом виде. Если бы формат вывода был одинаковым независимо от выводимых значений
Код:
 12    34567
 14       12
то можно было бы определить число элементов по длине файла. Но если он
Код:
12 34567
14 12
- тогда уж...
digitalis вне форума Ответить с цитированием
Старый 14.12.2019, 10:57   #6
archerix
Форумчанин
 
Регистрация: 13.09.2019
Сообщений: 119
По умолчанию

Интересная идея, но вряд ли надежная - даже если на каждое число отводится строго одинаковое количество цифр, числа ведь в принципе могут иметь разный знак. Минусы же тоже занимает объем в файле
archerix вне форума Ответить с цитированием
Старый 14.12.2019, 13:00   #7
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Цитата:
Сообщение от archerix Посмотреть сообщение
даже если на каждое число отводится строго одинаковое количество цифр, числа ведь в принципе могут иметь разный знак. Минусы же тоже занимает объем в файле
A если на каждое число отводится строго одинаковое количество символов ? Тогда и с минусами будет всё в порядке.
digitalis вне форума Ответить с цитированием
Старый 14.12.2019, 13:10   #8
archerix
Форумчанин
 
Регистрация: 13.09.2019
Сообщений: 119
По умолчанию

Тагды да - но такой подход в любом случае ненадежен. Ведь мы заранее можем и не знать, кто и как записывал данные. Хотя если самому записывать и самому считывать, то вполне
archerix вне форума Ответить с цитированием
Старый 14.12.2019, 13:30   #9
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Ну если делается прога универсальная и рассчитаная на приём от всего, что только можно - от атомного реактора до сноповязалки - тогда да. Но если предполагается работа с конкретными файлами, которые уже есть - кто мешает посмотреть их структуру?
Впрочем, на месте виднее.
digitalis вне форума Ответить с цитированием
Старый 14.12.2019, 22:37   #10
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,549
По умолчанию

Цитата:
Сообщение от archerix Посмотреть сообщение
А почему именно список, а не вектор?
То, что вам удобнее, то и используйте.
Arigato вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ Считывание данных из файла bylbyl9tor Помощь студентам 1 11.04.2019 14:26
Считывание данных с файла LittleStudent Помощь студентам 0 29.05.2011 12:08
считывание данных из текстового файла Olejik Общие вопросы по Java, Java SE, Kotlin 3 03.10.2009 20:40
Считывание данных из файла inret Общие вопросы Delphi 4 18.11.2007 18:03
Считывание данных из файла PAVEL315 Общие вопросы Delphi 26 17.12.2006 00:53