Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
1

Считать из файла в массив

09.05.2012, 09:36. Показов 1052. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день форумчани, у меня маленькое недопонимание. В смысле я не могу считать из файла в МАССИВ, данный массив есть объектом главного класса.
Задача:
Считать из файла в массив объекта главного класса

Сейчас я приведу классы с которыми я работаю
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
class pk
{
   protected:
      int numnext;
      char korpus[20];
      char m_proc[20];
      char m_monit[20];
      char *date;
   public:
      pk();
      virtual ~pk();
      virtual void inputandsave() = 0;
      virtual void print() = 0;
      virtual void save() = 0;
      //virtual void open() = 0;
};
 
class monitor:public pk
{
   protected:
      int size_monit;
      char *type_monit;
      int yrc_disp;
      int ugol_obzor;
      char max_size[20];
      float max_col_cvet;
   public:
      monitor();
      ~monitor();
      void inputandsave();
      void print();
      void save();
      //void open();
};
 
class options:public pk
{
   protected:
      float proc;
      int ozu_mb;
      char *ozu_type;
      char m_hdd[20];
      int hdd_gb;
      char m_video[20];
      int video_mb;
      char materinka[20];
   public:
      options(){
         ozu_type = "DDR3";
      }
      ~options(){
         delete ozu_type;
      }
      void inputandsave();
      void print();
      void save();
      //void open();
};
class coll
{
   public:
      pk *field[100];
      int c;
      coll(){
         c = 0;
      }
      void add();
      void outpute();
      void UdaPk(int g);
      int Menu();
      void SAVE();
      //void OPEN();
};
В файл все записует отлично вот этот массив, пытался сделать по принципу записи (только считать), не вышло! ((
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.05.2012, 09:36
Ответы с готовыми решениями:

Считать массив из файла и отсортировать его. Отсортированный массив сохранить в файл
Создать одномерный массив. Сохранить его в файл. Считать массив из файла и отсортировать его....

Считать массив из файла, удалить оттуда 0, новый массив записать в файл
ребята, помогите ,пожалуйста. сначала необходимо прочитать файл .txt типа -71 0 -69 0 -68 0...

Считать массив строк из файла и вывести отсортированный по алфавиту массив в другой файл
Считать массив строк из файла и вывести отсортированный по алфавиту массив в другой файл. Если...

Нужно записать массив в файл, а потом из этого файла считать этот же массив
Помогите, пожалуйста, никогда с файлами делов не имела. Нужно записать массив в файл, а потом из...

4
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,641
Записей в блоге: 13
09.05.2012, 09:49 2
Цитата Сообщение от gorin Посмотреть сообщение
В файл все записует отлично
Не заметил в коде ни одной операции вывода в файл...
0
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
09.05.2012, 14:19  [ТС] 3
Catstail, вот запись в файл
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
29
30
31
32
33
34
35
void monitor::save()
{
        f = fopen("output.txt", "a");
        fprintf(f, "%s\n", m_monit);
        fprintf(f, "%d\n", size_monit);
        fprintf(f, "%s\n", type_monit);
        fprintf(f, "%d\n", yrc_disp);
        fprintf(f, "%d\n", ugol_obzor);
        fprintf(f, "%s\n", max_size);
        fprintf(f, "%g\n", max_col_cvet);
        fclose(f);
}
void options::save()
{
        f = fopen("output.txt", "a");
        fprintf(f, "%s\n", korpus);
        fprintf(f, "%s\n", m_proc);
        fprintf(f, "%g\n", proc);
        fprintf(f, "%d\n", ozu_mb);
        fprintf(f, "%s\n", ozu_type);
        fprintf(f, "%s\n", m_hdd);
        fprintf(f, "%d\n", hdd_gb);
        fprintf(f, "%s\n", m_video);
        fprintf(f, "%d\n", video_mb);
        fprintf(f, "%s\n", materinka);
        fclose(f);
 
}
void coll::SAVE()
{
    for(int i = 0; i < c; i++)
    {
        field[i]->save();
    }
}
Добавлено через 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
27
28
29
30
31
32
33
34
void monitor::open()
{
        fscanf(f, "%s", &m_monit); 
        fscanf(f, "%d", &size_monit);
        fscanf(f, "%s", &type_monit);
        fscanf(f, "%d", &yrc_disp);
        fscanf(f, "%d", &ugol_obzor);
        fscanf(f, "%s", &max_size);
        fscanf(f, "%f", &max_col_cvet);
}
void options::open()
{
        fscanf(f, "%s", &korpus);
        fscanf(f, "%s", &m_proc);
        fscanf(f, "%f", &proc);
        fscanf(f, "%d", &ozu_mb);
        fscanf(f, "%s", &ozu_type);
        fscanf(f, "%s", &m_hdd);
        fscanf(f, "%d", &hdd_gb);
        fscanf(f, "%s", &m_video);
        fscanf(f, "%d", &video_mb);
        fscanf(f, "%s", &materinka);
}
void coll::OPEN()
{
 
   c=2;
   f = fopen("output.txt", "r");
      field[0] = new monitor;
      field[0]->open();
      field[1] = new options;
      field[1]->open();
   fclose(f);
}
Добавлено через 2 минуты
Catstail, побывал считать 2 элемента

Добавлено через 1 час 51 минуту
Catstail, оно принципе работает, но немного кривенько

Добавлено через 2 часа 31 минуту
Помогите решить проблему!!!
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,641
Записей в блоге: 13
09.05.2012, 14:54 4
1) Что значит "кривенько"? Нужны симптомы.
2) При чтении из файла сразу заметны ошибки в коде. Когда читаешь массив char (т.е. строку), то в fscanf не нужно у имени строки ставить амперсанд (имя строки и есть ее адрес, в отличие от имени целого). Возможно, ошибки связаны с этим.
1
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
09.05.2012, 15:19  [ТС] 5
Catstail, Симптома в том что в массив объекта класса читает как бы неправильные данные, к примеру в файле строка "fist" вместо нее читает на том же месте но отображает какие то бяки (смайлики)!

Добавлено через 2 минуты
Catstail, отлично работает, я разобрался
0
09.05.2012, 15:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.05.2012, 15:19
Помогаю со студенческими работами здесь

Считать массив А с файла a.txt. после чего сформировать массив С в котором все отрицательные элементы с масси
Помогите написать программу на C++. Изучала этот язык меньше пол года, пока есть проблемы. очень...

Считать массив А(n) из файла
Колокол. Считать массив А(n) из файла. В массиве наименьший элемент поместить на первое место,...

Считать массив из файла
Считать массив заданной размерности из файла. Как это сделать?

Считать с файла в массив
Подскажите, как считать посимвольно из файла в двумерный массив через fscanf? например в файле: ...

Считать массив из файла
{ OpenFileDialog^ fd = gcnew OpenFileDialog; fd-&gt;InitialDirectory = &quot;c:\\&quot;; ...

Считать массив из файла
int chislo = File.ReadAllText(@&quot;..\..\1.txt&quot;, Encoding.Default).Split(' ').Select(i =&gt;...


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

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