Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
5 / 6 / 4
Регистрация: 18.11.2009
Сообщений: 661
1

Чтение строк из текстового файла в массив структур

20.01.2020, 20:59. Показов 725. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Надо считать из текстового файла строки в массив структур
C++
1
2
3
4
5
struct rec
{
  int key;
  char val[64];
};
надо чтоб в поле val считывался весь текст с пробелами если есть
Пример файла
------------------------------
5 Рецепт и состав лекарства корвалол
3 Ингридиенты раствора
1 Описание применения препарата Concor

C++
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
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 struct rec
{
  int key;
  char val[64];
};
 rec *st;ifstream f;
int n; //размерность массива структур -кол записей в файле
 
int _tmain(int argc, _TCHAR* argv[])
{
    struct rec w;
    f.open ("dan.txt",ios::in);
    if(!f.is_open()) 
         {cout<<"can't open this file\n"; cin.get(); return -1; };
    n=0;
    while(!f.eof() )   {
      f>>w.key; f.getlIne(w.val,64);  n++;
                       }
    cout << "n=" <<  n;
    st=new rec[n];
    cin.get(); 
    return 0;
}
Эта программа не компилируется ошибка
error C2039: getlIne: не является членом "std::basic_ifstream<_Elem,_Traits>
В чем причина?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.01.2020, 20:59
Ответы с готовыми решениями:

Чтение из текстового файла массив структур
Доброго времени суток. Нужно из текстового файла заполненного по типу ( Фио Диагноз...

Потоковое чтение из текстового файла в массив структур
Извините, тема уже обсуждалась, но возникла у читающих путаница. Еще раз. Есть текстовый файл...

Чтение информации из текстового файла в массив строк.
Считать из текстового файла информацию в массив строк. Отобразить на экран. Удалить повторяющиеся...

Чтение массива структур из текстового файла
Привет! Есть такая структура: struct Countries::Country { char name; int brand; }; и файл...

3
6107 / 3461 / 1406
Регистрация: 07.02.2019
Сообщений: 8,794
20.01.2020, 21:01 2
Цитата Сообщение от eugrita Посмотреть сообщение
В чем причина?
getlIne -> getline
1
5 / 6 / 4
Регистрация: 18.11.2009
Сообщений: 661
21.01.2020, 00:07  [ТС] 3
да сам, идиот

Добавлено через 3 часа 3 минуты
Но вот теперь хотя то недоразумение исправлено хочу использовать двойное чтение файла для определения количества строк. После 1 прохода известно количество строк n и можно выделить память для массива структур. Но при 2 чтении происходит фигня
Код программы
C++
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
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "RUS");// русс яз
    struct rec w;
    f.open ("dan.txt",ios::in);
    if(!f.is_open()) 
         {cout<<"can't open this file\n"; cin.get(); return -1; };
    n=0;
    while(!f.eof() )    {
     f>>w.key; f.getline(w.val,255);  n++;
     cout <<w.key <<" "<<w.val<<'\n';
                        }
    f.close();
    st=new rec[n];
    f.open ("dan.txt",ios::in);
   for (int i=0;i<n;i++) {
       // f>>w.key; f.getline(w.val,255);
        //st[i].key=w.key; strcpy(st[i].val,w.val);
      f>>st[i].key; 
      f.getline(st[i].val,255);
     cout <<st[i].key <<" "<<st[i].val<<'\n';
                          }
   f.close();
    cin.get(); 
    return 0;
}
Результат
5 Corvalol recept Ingredients
3 Panangin tablets
1 Concor 5mg N50
-842150451
-842150451
-842150451
--------------------
т.е 3 строки распечатаны правильно а при 2-м проходе казалочь бы то же чтение но в массив структур дает какие-то цифры
0
6107 / 3461 / 1406
Регистрация: 07.02.2019
Сообщений: 8,794
21.01.2020, 00:17 4
Цитата Сообщение от eugrita Посмотреть сообщение
C++
1
while(!f.eof() )
Так делать не надо.
Подробнее тут.
Цитата Сообщение от eugrita Посмотреть сообщение
C++
1
f.close();
после этого нужно f.clear();
0
21.01.2020, 00:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.01.2020, 00:17
Помогаю со студенческими работами здесь

Чтение массива структур из текстового файла
Задание таково: есть структура из 2-х полей:№телефона и комментарий Создать тел.книгу. ...

Чтение из текстового файла и запись в массив. Разбиение массива строк на 4 массива. Split
Необходимо считать данные из файла в 4 массива. внутри файла текст такого типа...

Чтение строк из текстового файла
Помогите с кодом! Имеется текстовый файл, в к-ом построчно идут вопрос, 4 варианта ответов,...

Чтение первых 10-и строк из текстового файла
Доброго времени суток. В папке &quot;Documents&quot; (документы) есть папка с названием &quot;wasd&quot;, а в папке...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru