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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
NNN7
7 / 7 / 3
Регистрация: 05.09.2013
Сообщений: 502
#1

Есть файл с данными . Как переписать эти данные в массив структур? - C++

12.10.2013, 14:41. Просмотров 1463. Ответов 53
Метки нет (Все метки)

Допустим есть файл 1.txt с данными:
123
789
456
733

Нужно из файла переписать данные в массив структур.
Например , есть такая структура:
C++
1
2
3
4
5
6
7
8
9
10
11
12
struct My
{int a;
 int b;
 int c;
 int d;
 }
int main()
{int n;
 cin>>n;
 My s=new My[n];
 
return 0;}
Получается в поле а должны быть данные из файла , которые находятся в 1-ом столбце 1,7,4,7
Помогите , пожалуйста , как это можно сделать ? Объясните , если можете , принцип записи .
Пока вообще не могу понять , как справиться с этой задачей.Как узнать , исходя из файла , сколько массивов структур будет ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2013, 14:41     Есть файл с данными . Как переписать эти данные в массив структур?
Посмотрите здесь:
C++ Ввести данные в файл, и записать данные с файла в массив структур
Как записать данные из файла в массив структур? C++
C++ Как ввести данные в динамический массив структур?
C++ Заполнить массив структур данными с файла
Как записать массив структур в файл C++
Подскажите как записать массив структур в файл C++
Прочитать из текстового файла данные в массив структур C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
12.10.2013, 19:59     Есть файл с данными . Как переписать эти данные в массив структур? #41
Цитата Сообщение от NNN7 Посмотреть сообщение
А файл у меня был назван не 1 , а 1.txt - вот в этом ошибка
Тогда как это понять?
Цитата Сообщение от NNN7 Посмотреть сообщение
Вот , на диске D , без всякой папки у меня хранится файл data.txt с данными
Какой файл у вас был на D: data.txt или data.txt.txt ?
NNN7
7 / 7 / 3
Регистрация: 05.09.2013
Сообщений: 502
12.10.2013, 20:45  [ТС]     Есть файл с данными . Как переписать эти данные в массив структур? #42
Цитата Сообщение от alsav22 Посмотреть сообщение
Тогда как это понять?

Какой файл у вас был на D: data.txt или data.txt.txt ?
название он имел data.txt
это я просто дурак.
пожалуйста , можете ещё разок разъяснить , как происходит чтение из файла?
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
12.10.2013, 20:57     Есть файл с данными . Как переписать эти данные в массив структур? #43
Цитата Сообщение от NNN7 Посмотреть сообщение
название он имел data.txt
Вы под названием файла, что понимаете? То что до расширения? Или у вас расширения файлов не видны?
NNN7
7 / 7 / 3
Регистрация: 05.09.2013
Сообщений: 502
12.10.2013, 21:00  [ТС]     Есть файл с данными . Как переписать эти данные в массив структур? #44
Цитата Сообщение от alsav22 Посмотреть сообщение
Вы под названием файла, что понимаете? То что до расширения? Или у вас расширения файлов не видны?
то что до расширения
я создаю текстовый файл и даю ему сразу имя
вот я и дал при создании ему имя 1.txt , а подумал , что это у меня расширение
а расширение получается автоматически создаётся , так как я выбрал- создать "текстовый файл"
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
12.10.2013, 21:36     Есть файл с данными . Как переписать эти данные в массив структур? #45
Цитата Сообщение от NNN7 Посмотреть сообщение
Прошу Вас , можете ещё раз подробненько рассказать , как происходит считывание с файла , которое Вы написали:
ifstream fin("1.txt");
if (fin)
{
string str;
int N = 0;
while (getline(fin, str)) ++N; // N - количество строк (структур) в файле
fin.clear();
fin.seekg(0);
My *arr = new My[N];
for (int i = 0; i < N; ++i)
{
fin >> arr[i].a;
fin >> arr[i].b;
fin >> arr[i].c;
fin >> arr[i].d;
}
}
N-это у нас получается количество массивов ,но мне не понятно , как именно оно начисляется ?
и зачем нам нужно:
C++
1
fin.clear();
можно ли обойтись без него?
И ещё , теперь все операции , которые я хочу делать со структурой - их нужно делать в операторе if(){} ?
1) "N-это у нас получается количество массивов ,но мне не понятно , как именно оно начисляется ?"

getline() читает строку, счётчик N, после прочтения каждой строки, увеличивается. Сколько строк - столько структур.

2) "и зачем нам нужно:
C++
1
fin.clear();
можно ли обойтись без него?"

Когда чтение строк в файл доходит до конца файла, то устанавливается флаг eof, если его не сбросить (fin.clear()), то поток будет нерабочим, и никакие действия с ним не буду выполняться.

3) "И ещё , теперь все операции , которые я хочу делать со структурой - их нужно делать в операторе if(){}" ?

Если файл не открылся, занчит данные в массив не будут считаны. Что в таком случае можно "делать со структурой"?
NNN7
7 / 7 / 3
Регистрация: 05.09.2013
Сообщений: 502
13.10.2013, 11:32  [ТС]     Есть файл с данными . Как переписать эти данные в массив структур? #46
Цитата Сообщение от alsav22 Посмотреть сообщение
1) "N-это у нас получается количество массивов ,но мне не понятно , как именно оно начисляется ?"

getline() читает строку, счётчик N, после прочтения каждой строки, увеличивается. Сколько строк - столько структур.

2) "и зачем нам нужно:
C++
1
fin.clear();
можно ли обойтись без него?"

Когда чтение строк в файл доходит до конца файла, то устанавливается флаг eof, если его не сбросить (fin.clear()), то поток будет нерабочим, и никакие действия с ним не буду выполняться.

3) "И ещё , теперь все операции , которые я хочу делать со структурой - их нужно делать в операторе if(){}" ?

Если файл не открылся, занчит данные в массив не будут считаны. Что в таком случае можно "делать со структурой"?
Спасибо! А зачем потом переходить в начало файла fin.seekg(0); ?
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.10.2013, 11:42     Есть файл с данными . Как переписать эти данные в массив структур? #47
Цитата Сообщение от NNN7 Посмотреть сообщение
А зачем потом переходить в начало файла fin.seekg(0); ?
Вопрос, конечно, интересный... А подумать?
NNN7
7 / 7 / 3
Регистрация: 05.09.2013
Сообщений: 502
13.10.2013, 13:23  [ТС]     Есть файл с данными . Как переписать эти данные в массив структур? #48
Цитата Сообщение от alsav22 Посмотреть сообщение
Вопрос, конечно, интересный... А подумать?
Чтобы дальше работать с файлом , начиная с его начала- нулевого бита? (считывать в структуру)
alsav22
13.10.2013, 13:25
  #49

Не по теме:

Зачем спрашивать то, что и так понятно?

NNN7
7 / 7 / 3
Регистрация: 05.09.2013
Сообщений: 502
13.10.2013, 13:27  [ТС]     Есть файл с данными . Как переписать эти данные в массив структур? #50
Цитата Сообщение от alsav22 Посмотреть сообщение

Не по теме:

Зачем спрашивать то, что и так понятно?

я только учусь и некоторые вещи ещё не понятны. думаю ,что было бы хуже , если б я ничего не спрашивал , а тупо брал код.
alsav22
13.10.2013, 13:29
  #51

Не по теме:

Цитата Сообщение от NNN7 Посмотреть сообщение
было бы хуже , если б я ничего не спрашивал , а тупо брал код.
А брать код и не думать - лучше?

NNN7
7 / 7 / 3
Регистрация: 05.09.2013
Сообщений: 502
13.10.2013, 13:39  [ТС]     Есть файл с данными . Как переписать эти данные в массив структур? #52
Цитата Сообщение от alsav22 Посмотреть сообщение

Не по теме:


А брать код и не думать - лучше?

брать код и не думать - хуже
вот у меня , например , есть какие-то догадки , почитаю что-то , но всё равно - лучше переспросить
alsav22
13.10.2013, 13:48
  #53

Не по теме:

Цитата Сообщение от NNN7 Посмотреть сообщение
но всё равно - лучше переспросить
Не лучше. Лучше самому понять. Это и есть - думать. Есть вопросы сложные, и о них не грех спросить, а есть элементарные, ответ на которые лежит на поверхности, типа: зачем передвигать курсор в начало файла, если дальше идёт чтение с начала файл.

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2013, 13:52     Есть файл с данными . Как переписать эти данные в массив структур?
Еще ссылки по теме:
Переписать с первого файла данные во второй файл, но по критериям C++
C++ Выделить отдельные данные в файле и переписать в другой файл
Массив структур: вывести данные о рабочем с наибольшей зарплатой и наименьшим стажем C++
C++ Организация работы с данными (входные данные должны вводиться из файла, а выходные выводиться в файл)
C++ C++, переписать данные из файла в файл, отсортировав по фамилии и убыванию года рождения

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

Или воспользуйтесь поиском по форуму:
NNN7
7 / 7 / 3
Регистрация: 05.09.2013
Сообщений: 502
13.10.2013, 13:52  [ТС]     Есть файл с данными . Как переписать эти данные в массив структур? #54
Цитата Сообщение от alsav22 Посмотреть сообщение

Не по теме:


Не лучше. Лучше самому понять. Это и есть - думать. Есть вопросы сложные, и о них не грех спросить, а есть элементарные, ответ на которые лежит на поверхности, типа: зачем передвигать курсор в начало файла, если дальше идёт чтение с начала файл.

Да-да , я всё понимаю . Лучше самому думать. Но для новичка вопросы все сложные . Опыта пока мало. Бывает спрошу что-то - и стыдно становится.
Я надеюсь со временем будет лучше . Я пока только на 1-ом курсе , с программированием не сталкивался никогда.
Yandex
Объявления
13.10.2013, 13:52     Есть файл с данными . Как переписать эти данные в массив структур?
Ответ Создать тему
Опции темы

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