Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Redivn
0 / 0 / 0
Регистрация: 16.11.2014
Сообщений: 6
#1

Чтение из файла

16.11.2014, 12:42. Просмотров 859. Ответов 6
Метки нет (Все метки)

Не знаю как нормально организовать чтение чисел из файла (числа в файле расположены через запятую)
пример файла:

14,79,..,4
68,74,..,43
..............
16,47,..,58

количество чисел в каждой строке само собой разное, доходит до 90 (максимум), но все числа в интервале int.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2014, 12:42
Ответы с готовыми решениями:

Переделать в коде чтение из файла в чтение с клавиатуры
Переделайте что бы текст считывался с клавиатуры, а не с файла! Буду благодарен...

Чтение из файла. Повторное чтение файла
Добрый день. Необходимо реализовать в программе функцию повторного чтения...

Преобразование текстового файла в двоичный и чтение исходных данных из двоичного файла.
#include<iostream> #include<fstream> #include<locale.h> #include<iomanip>...

Чтение нескольких структур и одной переменной из бинарного файла. Формат файла имеется
Формат файла состоит из 3 структур и одной переменной. Подробное описание...

как может корректно выполняющийся оператор >> (чтение из текстового файла) негативно влиять на открытие другого файла?
Друзья! Создадим два текстовых файла, f_0.txt и f_1.txt и что-нибудь в них...

6
nmcf
6271 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
16.11.2014, 13:22 #2
В чём сложность? Надо в одномерный массив сохранять или как матрицу?
0
Redivn
0 / 0 / 0
Регистрация: 16.11.2014
Сообщений: 6
16.11.2014, 13:30  [ТС] #3
не знаю как нормально обойти запятые, потому что до этих чисел есть еще полезная информация в виде текста и других чисел. В инете и на форумах нашел только:
1) считать в строку все
2) преобразовать строку в числа
Так как в строке куча другой информаци, то это как-то сложно будет. Других способов я не нашел.
+ раз так много чисел, то возможно вся информация в одну строку не влезет

Добавлено через 2 минуты
единственный простой вариант о котором я подумал - это скопировать эти числа в эксель и там автоматически разбить на столбцы через запятую..
0
nmcf
6271 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
16.11.2014, 13:44 #4
Лучший ответ Сообщение было отмечено Redivn как решение

Решение

Про другую полезную информацию не понятно, а конкретно ту структуру, какую ты описал, можно так прочитать при условии, что нет пробелов лишних между цифрами и запятыми и файл не пустой:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    std::vector<std::vector<int>> v;
    int n, i = 0;
    v.push_back(std::vector<int>());
    std::ifstream ifs("d:\\data.txt");
    while (!ifs.eof())
    {
        ifs >> n;
        v[i].push_back(n);
        char c = ifs.get();
        if (ifs.eof()) break;
        if (c == '\n')
        {
            v.push_back(std::vector<int>());
            ++i;
        }
    }
1
Redivn
0 / 0 / 0
Регистрация: 16.11.2014
Сообщений: 6
16.11.2014, 13:58  [ТС] #5
Спасибо! все круто, только я не понимаю почему после запятой не должно быть пробелов?

Добавлено через 2 минуты
то есть тогда нужно просто два раза
C++
1
  c = ifs.get();
вместо одного сделать, я правильно понял?
0
nmcf
6271 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
16.11.2014, 14:01 #6
Ну потому что я так алгоритм составил. Можно доработать, чтобы и пробелы допускались. Суть в том, что число извлекается до запятой, get() пропускает запятую, а если будет пробел, то запятая останется. Запятая должна быть слитно с предыдущим числом.

Добавлено через 1 минуту
Нет, если пробелы разрешить, то нет гарантии, что их не будет два, три или десять. Нужно тогда циклом читать.
0
Redivn
0 / 0 / 0
Регистрация: 16.11.2014
Сообщений: 6
16.11.2014, 14:05  [ТС] #7
ну это не проблема, количество пробелов всегда одно и тоже и равно одному, ну или действительно циклом)
Большое спасибо, я разобрался!
0
16.11.2014, 14:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2014, 14:05

Чтение файла с несколькими знаками конца файла
В файле несколько раз встречается ноль, и ни как не получается прочитать его...

Чтение текстового файла специфического файла
Добрый день! Есть один текстовый файл определенного формата. Заголовок по...

Чтение файла
Помогите пожалуйста. Не пойму в чем дело. Проблема в указателе pnt. Постоянно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru