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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
Glevera
14 / 14 / 1
Регистрация: 29.04.2012
Сообщений: 148
#1

Функция чтения столбцов чисел из текстового файла - C++

07.01.2014, 01:02. Просмотров 2178. Ответов 29
Метки нет (Все метки)

Необходима функция, которая откроет текстовый файл, прочтет заранее заданное количество столбцов в массив массивов.
В файле находятся не меньше одного столбца чисел записанных в одном из возможных форматов: 1234.213455 или -5.78786E-5.
До этого реализовывал на C#: читал в строки, затем регулярным выражением выбирал только то, что подходит, складывал в листы, затем перекладывал в массив массивов.
Сейчас изучаю С++ на реальных заданиях, прошу помощи.
Пишу в Qt.

Добавлено через 2 часа 49 минут
Чтение файла построчно с заполнением в массив, так правильно?

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <fstream>
 
int main()
{
    using std::cin;
    using std::cout;
 
    const int imax = 10;
    fstream inp_str();
    inp_str.open("C:/Exp.txt", ios::in);
 
    string arr [imax];
    int i;
 
    if(!inp_str)
    {
        cout << "Error!";
        return 0;
    }
 
    for(i = 0; i < imax; i++)
    {
        inp_str >> arr[i];
        cout << arr[i];
    }
 
    return 0;
}
Добавлено через 7 минут
Остается вопрос о том как спарсить из каждой строки первые N совпадений.
(регулярное выражение для чисел у меня есть)
А также как быть с тем, что количество строк заранее неизвестно?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2014, 01:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция чтения столбцов чисел из текстового файла (C++):

Шаблонная функция для чтения целых чисел, дробных, строк из файла - C++
Необходимо написать шаблонную функцию для чтения целых чисел, дробных, строк из файла. С числами все работает. Но при чтении строк...

Функция чтения из файла - C++
Написал программу которая в зависимости от выбора пункта меню, записывает данные в файл или читает их. Все было нормально пока не дошел...

Функция чтения из файла - C++
Здравствуйте, пытаюсь написать функцию, которая бы выводила информацию из файла, без функции код выглядит так: ifstream infileout; ...

Функция для чтения из файла в матрицу - C++
#include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;fstream&gt; using namespace std; void setvector(vector&lt;vector&lt;int&gt; &gt; matrix,...

Нужен пример кода чтения из файла, сравнение и функция рандом - C++
Нужен пример кода -Открываем файл -Считываем содержимое(будет 4 числа) -Очищаем файл -Записываем в файл 4 случайных числа...

Функция, возвращающая k-ю строку текстового файла - C++
*/ Описать функцию getLine(Name,k) строкового типа, возвращающую k-ю строку текстового файла с именем Name (строки нумеруются от 0). Если...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ev_Hyper
Заблокирован
07.01.2014, 01:25 #2
Glevera, а почему вы не используете возможности Qt для работы с файлами?

Добавлено через 1 минуту
Цитата Сообщение от Glevera Посмотреть сообщение
А также как быть с тем, что количество строк заранее неизвестно?
а что-то вроде такого не подойдет?
C++ (Qt)
1
2
3
4
5
6
7
8
9
QFile file("F:\\..."); 
if(file.open(QFile::ReadOnly)){ 
    QTextStream stream(&file); 
    while(!stream.atEnd()) 
    { 
    /*....*/
    }
}
file.close();
1
Glevera
14 / 14 / 1
Регистрация: 29.04.2012
Сообщений: 148
07.01.2014, 01:32  [ТС] #3
Ev_Hyper,
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
Glevera, а почему вы не используете возможности Qt для работы с файлами?
Да потому что приходится одновременно учить, писать код и проектировать...)
Спасибо!
Буду знать, куда дальше двигаться.
Почитаю еще про Qt!
Как сделаю, отпишусь.
0
Ev_Hyper
07.01.2014, 01:37
  #4

Не по теме:

Я Qt плохо знаю, так что мог и не то посоветовать

0
Glevera
14 / 14 / 1
Регистрация: 29.04.2012
Сообщений: 148
07.01.2014, 01:41  [ТС] #5
Тогда такой вопрос, какими средствами чтения и парсинга файлов лучше пользоваться: Qt или С++?
0
S_el
2100 / 1611 / 308
Регистрация: 15.12.2013
Сообщений: 6,451
07.01.2014, 01:42 #6
Что лучше знаете,тем и пользуйтесь.
0
Ev_Hyper
Заблокирован
07.01.2014, 01:47 #7
Glevera, тот код, что я выложил - рабочий, но не факт, что он вам подойдет. Мне почему то проще с файлами имеено в Qt. Тем более если вы раньше, считывали в С# построчно, то и тут можно поступить также.
0
Glevera
14 / 14 / 1
Регистрация: 29.04.2012
Сообщений: 148
07.01.2014, 01:51  [ТС] #8
S_el, ситуация такая: незнание С++ и Qt на одном уровне. Пишу в Qt Creator, так как приложение должно быть кроссплатформенным.

Не по теме:

Надеюсь, нигде не сглупил, и все делаю правильно...



Добавлено через 2 минуты

Не по теме:

Ev_Hyper, впереди еще не одна тысяча строк, поэтому лучше знать наилучший вариант, чем просто рабочий код.

0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.01.2014, 07:37 #9
Цитата Сообщение от Glevera Посмотреть сообщение
Чтение файла построчно с заполнением в массив, так правильно?
Вот это не чтение строк:
C++
1
inp_str >> arr[i];
Это чтение слов (до пробельного символа). Зачем здесь string, если в файле числа?
1
Glevera
14 / 14 / 1
Регистрация: 29.04.2012
Сообщений: 148
07.01.2014, 12:17  [ТС] #10
Цитата Сообщение от alsav22 Посмотреть сообщение
Зачем здесь string, если в файле числа?
Это шаг к тому, чтобы потом перейти к числам.
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.01.2014, 12:43 #11
Цитата Сообщение от Glevera Посмотреть сообщение
Это шаг к тому, чтобы потом перейти к числам.
Почему не сразу читать числа? Или так задачу не решить?
0
Glevera
14 / 14 / 1
Регистрация: 29.04.2012
Сообщений: 148
07.01.2014, 12:56  [ТС] #12
Я вот не соображу, чтобы код было стопроцентно кроссплатформенным при использовании Qt, нужно не использовать заголовочные файлы типа iostream и math.h?
Это нужно знать, чтобы мне сейчас читать и учиться использовать для чтения и парсинга Qt или нет.

Не по теме:

alsav22, Рождество, а Вы как-то недобро...
Потому что еще не знаю как. Если бы знал, поверьте, сюда бы не обращался.

0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.01.2014, 13:03 #13

Не по теме:

Цитата Сообщение от Glevera Посмотреть сообщение
Рождество, а Вы как-то недобро...
Не понял, в чём недобро?



Добавлено через 1 минуту
Цитата Сообщение от Glevera Посмотреть сообщение
Потому что еще не знаю как.
Не знаете что? Как числа прочитать или как задачу решить?

Добавлено через 1 минуту
Цитата Сообщение от Glevera Посмотреть сообщение
Я вот не соображу, чтобы код было стопроцентно кроссплатформенным при использовании Qt, нужно не использовать заголовочные файлы типа iostream и math.h?
Это стандартные хедеры, поэтому можно (только лучше cmath).
1
Glevera
14 / 14 / 1
Регистрация: 29.04.2012
Сообщений: 148
07.01.2014, 13:18  [ТС] #14
alsav22,
Фуф.
Непонятно, как читать поток построчно?
А fstream можно использовать?

Не по теме:

Цитата Сообщение от alsav22 Посмотреть сообщение
Не понял, в чём недобро?
Извиняюсь, значит показалось.)

0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.01.2014, 13:22 #15
Цитата Сообщение от Glevera Посмотреть сообщение
А fstream можно использовать?
Можно, если нужно.

Добавлено через 2 минуты
Цитата Сообщение от Glevera Посмотреть сообщение
Непонятно, как читать поток построчно?
Знак вопроса кому? Не ответили насчёт чтения сразу чисел. Или вас это не интересует? Вопрос темы, собственно, в чём? Как прочитать строку из файла, или что?

Добавлено через 59 секунд
Цитата Сообщение от Glevera Посмотреть сообщение
которая откроет текстовый файл, прочтет заранее заданное количество столбцов в массив массивов.
Что за массив массивов?
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2014, 13:22
Привет! Вот еще темы с ответами:

Каким образом после чтения из файла, узнать позицию для чтения следующего куска байт - C++
Здравствуйте, задача такова есть файл, размером 1000 байт, нужно открыть его считать 100 байт, после чтения закрыть. Потом опять открыть...

Функция fopen() для большого текстового файла читает только первую строку - C++
Есть текстовой файл 4.5 мб, нужно его открыть для чтения из него строк. FILE *f = fopen(&quot;C:\\members.txt&quot;, &quot;r&quot;); Это мне...

Запись чисел из текстового файла - C++
Доброго времени суток. Имеется текстовый файл, в котором дан номер элемента (химического), далее название самого элемента, а на следующей...

Добавить в конец первого текстового файла содержимое второго текстового файла - C++
Даны два текстовых файла. Добавить в конец первого файла содержимое второго файла.


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
07.01.2014, 13:22
Ответ Создать тему
Опции темы

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