Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.58/26: Рейтинг темы: голосов - 26, средняя оценка - 4.58
9 / 9 / 10
Регистрация: 05.09.2013
Сообщений: 502

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

12.10.2013, 14:41. Показов 5331. Ответов 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
Помогите , пожалуйста , как это можно сделать ? Объясните , если можете , принцип записи .
Пока вообще не могу понять , как справиться с этой задачей.Как узнать , исходя из файла , сколько массивов структур будет ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.10.2013, 14:41
Ответы с готовыми решениями:

Создать текстовый файл с исходными данными любой размерности. Из текстового файла переписать числа в массив, типизированный файл. Сделать контрольный
Создать текстовый файл с исходными данными любой размерности. Из текстового файла переписать числа в массив, типизированный файл. Сделать...

Ввести данные в файл, и записать данные с файла в массив структур
Ввести все данные в файл, и записать данные с файла в структуру. Помогите ввести и вывести структуру из файла. Допускается - и желательно...

Как дописать и как переписать файл данными из RichTextBox
Всем доброго времени суток! Есть ричтекстбокс и мне надо дописать в файл данные из его, а иногда переписать. Записываю\переписываю в...

53
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
12.10.2013, 19:59
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от NNN7 Посмотреть сообщение
А файл у меня был назван не 1 , а 1.txt - вот в этом ошибка
Тогда как это понять?
Цитата Сообщение от NNN7 Посмотреть сообщение
Вот , на диске D , без всякой папки у меня хранится файл data.txt с данными
Какой файл у вас был на D: data.txt или data.txt.txt ?
0
9 / 9 / 10
Регистрация: 05.09.2013
Сообщений: 502
12.10.2013, 20:45  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
Тогда как это понять?

Какой файл у вас был на D: data.txt или data.txt.txt ?
название он имел data.txt
это я просто дурак.
пожалуйста , можете ещё разок разъяснить , как происходит чтение из файла?
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
12.10.2013, 20:57
Цитата Сообщение от NNN7 Посмотреть сообщение
название он имел data.txt
Вы под названием файла, что понимаете? То что до расширения? Или у вас расширения файлов не видны?
0
9 / 9 / 10
Регистрация: 05.09.2013
Сообщений: 502
12.10.2013, 21:00  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
Вы под названием файла, что понимаете? То что до расширения? Или у вас расширения файлов не видны?
то что до расширения
я создаю текстовый файл и даю ему сразу имя
вот я и дал при создании ему имя 1.txt , а подумал , что это у меня расширение
а расширение получается автоматически создаётся , так как я выбрал- создать "текстовый файл"
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
12.10.2013, 21:36
Цитата Сообщение от 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(){}" ?

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

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

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

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

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

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

Не по теме:

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

0
9 / 9 / 10
Регистрация: 05.09.2013
Сообщений: 502
13.10.2013, 13:27  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение

Не по теме:

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

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

Не по теме:

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

0
9 / 9 / 10
Регистрация: 05.09.2013
Сообщений: 502
13.10.2013, 13:39  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение

Не по теме:


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

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

Не по теме:

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

0
9 / 9 / 10
Регистрация: 05.09.2013
Сообщений: 502
13.10.2013, 13:52  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение

Не по теме:


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

Да-да , я всё понимаю . Лучше самому думать. Но для новичка вопросы все сложные . Опыта пока мало. Бывает спрошу что-то - и стыдно становится.
Я надеюсь со временем будет лучше . Я пока только на 1-ом курсе , с программированием не сталкивался никогда.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.10.2013, 13:52
Помогаю со студенческими работами здесь

Дан файл вещественных чисел. Найти произведение его отрицательных компонент. Переписать эти компоненты в новый файл
Дан файл вещественных чисел. Найти произведение его отрицательных компонент. Переписать эти компоненты в новый файл.

Как записать данные из файла в массив структур?
В коде я ввожу данные и их записывает в файл, помогите пожалуйста записать данные из файла в массив структур #include &lt;conio.h&gt; ...

Как ввести данные в динамический массив структур?
Подскажите пожалуйста, можно ли вводить данные в динамический массив структур c помощью cin &gt;&gt; следующим образом: #include...

Заполнить массив структур данными с файла
Описать структуру с именем WORKER, содержащую следующие поля: ФИО работника; название занимаемой должности; год поступления на работу....

Как записать массив структур в файл
Ребят всем привет у меня такой вопрос как мне записать #include &lt;iostream&gt; #include &lt;windows.h&gt; #include &lt;iomanip&gt; ...


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

Или воспользуйтесь поиском по форуму:
54
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru