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

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

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

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

Сейчас я приведу классы с которыми я работаю
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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.05.2012, 09:36
Ответы с готовыми решениями:

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

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

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

4
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,683
Записей в блоге: 14
09.05.2012, 09:49
Цитата Сообщение от gorin Посмотреть сообщение
В файл все записует отлично
Не заметил в коде ни одной операции вывода в файл...
0
 Аватар для gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
09.05.2012, 14:19  [ТС]
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
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,683
Записей в блоге: 14
09.05.2012, 14:54
1) Что значит "кривенько"? Нужны симптомы.
2) При чтении из файла сразу заметны ошибки в коде. Когда читаешь массив char (т.е. строку), то в fscanf не нужно у имени строки ставить амперсанд (имя строки и есть ее адрес, в отличие от имени целого). Возможно, ошибки связаны с этим.
1
 Аватар для gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
09.05.2012, 15:19  [ТС]
Catstail, Симптома в том что в массив объекта класса читает как бы неправильные данные, к примеру в файле строка "fist" вместо нее читает на том же месте но отображает какие то бяки (смайлики)!

Добавлено через 2 минуты
Catstail, отлично работает, я разобрался
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.05.2012, 15:19
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
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