Форум программистов, компьютерный форум CyberForum.ru

Получение данных из файла в Спортивном программировании - C++

Восстановить пароль Регистрация
 
Igor Fender
1 / 1 / 0
Регистрация: 09.07.2014
Сообщений: 167
23.11.2014, 22:56     Получение данных из файла в Спортивном программировании #1
Здавствуйте!

Решая задачи по спортивному программированию, столкнулся с тем, что в 95% нужно использовать чтение из файла.
Допусти дан файл и в нем данные типа

11 12 13 14 15
21 22 23 24 25
31 32 33 34 35

Как проще считать каждое отдельное число в вектор/массив соответствующей строки, не теряя драгоценного времени? (для каждой строки отдельный контейнер)

Вот так я считываю строку:

C++
1
2
3
4
5
6
7
ifstream fin;
fin.open("file.txt");
 
char buff[50];
fin.getline(buff, 50);
 
fin.close();

Как проще разделить строку по числам?? Или может есть способ сразу считать почленно строки???

Добавлено через 1 час 43 минуты
Help!!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-THE_MASTER666-
Заблокирован
23.11.2014, 23:25     Получение данных из файла в Спортивном программировании #2
Лень угадывать за тебя.

Слишком мало данным о формате исходного файла.
1. Текстовой?
2. Длинна строк фиксирована? Если да, то фиксирована определённым значением?
3. Кол-во строк фиксировано? Если да, то определённым значением?
4. Разделить всегда один пробел?
5. Цифры всегда беззнаковые двухразрядные целые?
6. Какова кодировака файла? (Конечно же интересует символ переноса строки)
Igor Fender
1 / 1 / 0
Регистрация: 09.07.2014
Сообщений: 167
24.11.2014, 08:30  [ТС]     Получение данных из файла в Спортивном программировании #3
-THE_MASTER666-, допустим 3 строки, в каждой строке не более чем 10 чисел типа int или double, файл текстовой.
Строки всегда разделены пробелом
Кодировка - Utf8
demmax2004
57 / 135 / 35
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
24.11.2014, 09:26     Получение данных из файла в Спортивном программировании #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
int mas[5];
fscanf(fp, "%i %i %i %i %i", &mas[0], &mas[1], &mas[2], &mas[3], &mas[4]);
-THE_MASTER666-
Заблокирован
24.11.2014, 10:43     Получение данных из файла в Спортивном программировании #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Igor Fender Посмотреть сообщение
допустим 3 строки
Не допустим, а не более 3-х строк? == 3 строки?
Цитата Сообщение от Igor Fender Посмотреть сообщение
типа int или double
Если ты заранее не знаешь, какого типа эти числа, ты вообще быстро никак не прочитаешь, т.к. без специальных вставок в файл о формате числа, тебе после чтения каждого числа в строку, придётся парсить эту строку на предмет наличия в неё точки, если точка есть 0 значит double, иначе - int
Цитата Сообщение от Igor Fender Посмотреть сообщение
не более чем 10 чисел
так же замедлит чтение, т.к. заранее не известна конкретная длинна числовой строки

Добавлено через 6 минут
А вообще, все эти "если" и "допустим" ... У тебя же есть конкретное задание на соревнование, так? Вот его бы и процитировал.
Да и всё это спортивное программирование ...как и все прочие никому не нужные конкурсы по программированию... так..для детей, которые думают, что если они чего то там на спортсменят, то они от этого круче станут. Лучше иди на работу и когда наступит у тебя дед лайн с вероятностью твоего увольнения в случае провала проекта - тогда и посоревнуешься
Или изобретай что - то новое.
Yandex
Объявления
24.11.2014, 10:43     Получение данных из файла в Спортивном программировании
Ответ Создать тему
Опции темы

Текущее время: 21:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru