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

Чтение из файла в Матрицу - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Программа работы с файлом, отображенным в память http://www.cyberforum.ru/cpp-beginners/thread1139846.html
у меня есть проблемка, дана программа в методичке, нужно откомпилировать, я питался что-то сделать, но выскакует одна ошибка, прошу вашей помощи!!!Пожалуйста! вот методичка(лаба 4) и скрин ошибки. //#include "EvryThng.h" //#include "Everything.h" #define BUF_SIZE 160
C++ Почему не работает наследование? Пытаюсь присвоить полям производного класса поля базового,но выводит мусор. В чем проблема? #include "stdafx.h" #include <iostream> #include <cstring> #include <cstdio> #include <cmath> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread1139838.html
Error C3861 delete_list идентификатор не найден C++
Помогите разобраться с ошибкой, ругается на delete_list(&tail); #include "stdafx.h" #include <iostream> using namespace std; #include <conio.h> struct list2 { char name_nach; char name_konech;
C++ Error C2440 невозможно преобразовать char в char
двунаправленный список помогите разобраться с ошибкой #include "stdafx.h" #include <iostream> using namespace std; #include <conio.h> struct list2 { char name_nach;
C++ Написать программу мониторинга объявлений с сайта ati.su http://www.cyberforum.ru/cpp-beginners/thread1139819.html
Здравствуйте! я хочу попробовать написать программу мониторинга объявлений с сайта ati.su с внедрением antigate . Подскажите пожалуйста как и в чем это лучше исполнить. В программировании по нулям.
C++ Передать инициализированный std::vector конструктору базового класса В общем появилась одна проблема. Никак не пойму как можно сделать. В общем дело такое: 1) Есть класс Coord, который содержит координаты. #ifndef COORD_H #define COORD_H class Coord { public: Coord(int, int); int getX(){return x;} подробнее

Показать сообщение отдельно
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.04.2014, 23:30     Чтение из файла в Матрицу
Чтобы в файле свободно перемещаться по данным, эти данные, в виде структур, нужно записать в бинарном виде. Тогда с передвижением проблем не будет. Вот пример реализации:
Кликните здесь для просмотра всего текста
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <iostream>
#include <fstream>
using namespace std;
 
const int N = 5;
 
struct data
{
    int arr[N];
};
 
void show(data d) // вывод структуры
{
    for (int i = 0; i < N; ++i)
        cout << d.arr[i];
    cout << endl;
}
 
void read(ifstream& fin) // чтение и вывод структуры из файла
{
    data temp;
    if (fin.read((char*)&temp, sizeof(temp)))
    {
        show(temp);
    }
    else
    {
        cout << "The end of the file!" << endl;
        return;
    }
}
 
void step(ifstream& fin, char ch) // передвижение по структурам в файле
{
    if (ch == '1') // чтение и вывод очередной структуры
    {
        read(fin); 
    }
    else if (ch == '2') // чтение и вывод предыдущей структуры
    {
        int offset;
        if (fin.eof()) // если курсор в конце файла
        {
            offset = sizeof(data); // то размер смещения равен структуре (на последнюю в файле)
            fin.clear();
        }
        else
            offset = sizeof(data) * 2; // если курсор не в конце файла, то размер смещения равен двум структурам
        
        fin.seekg(-offset, ios::cur); // переход по смещению
        if (fin) // если не вышли за начало файла
        {
           read(fin);
        }
        else 
        {
            cout << "The beginning of the file!" << endl;
            // выводится первая структура в файле
            fin.clear();
            fin.seekg(0); 
            read(fin);
        }
    }
}
 
int main()
{
   const int M = 9; 
   data d[M];
   for (int i = 0; i < 9; ++i)
       for (int j = 0; j < 5; ++j)
          d[i].arr[j] = i + 1;
 
   ofstream fout("1.data", ios::binary);
   fout.write((const char*)d, sizeof(d[0]) * M);
   fout.close();
 
   // в файла, в бинарном виде, массив структур. В каждом массиве по N целых чисел
   // Величина числа соответствует номеру записи струкруры в файле (нумерация с 1).
 
   ifstream fin("1.data", ios::binary);
   if (!fin)
       cout << "Error!" << endl;
   else
   {
        char ch;
        do
        {
            cin >> ch; // 1 - шаг вперёд, 2 - шаг назад, 0 - выход
            if (ch == '0')
                break;
 
            step(fin, ch);
            
        } while (true);
   }
   
   system("pause");
   return 0;
}
 
Текущее время: 17:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru