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

Ошибка при чтении из файла - C++

Восстановить пароль Регистрация
 
BEL9ILLI
4 / 4 / 0
Регистрация: 15.05.2009
Сообщений: 57
12.01.2012, 23:47     Ошибка при чтении из файла #1
Файл открывается, но читаться из него информация не хочется.
Исходник

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
int c_array :: save(char *path) {
 
    FILE *f;
 
    f = fopen (path, "w");
    //f = fopen (path, "wb");
 
    if (f) {
        
        // Запись размерности
        fprintf(f, "%d ", this->dimentions);
        //fwrite (&this->dimentions, sizeof(int), 1, f);
 
        // Запись массива длин по каждому измерению
        for(int i = 0; i < this->dimentions; i++)
            fprintf(f, "%d ", this->size[i]);
        //fwrite (this->size, sizeof(int), this->dimentions, f);
 
        // данные
        for(int i = 0; i < this->length; i++)
            fprintf(f, "%d ", this->data[i]);
        //fwrite (this->data, sizeof(int), this->length, f);
 
        fclose (f);
 
        return true;
 
    } else return false;
}
 
З.Ы. нужная функция находится в файле array.cpp
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
12.01.2012, 23:59     Ошибка при чтении из файла #2
Вы файл открываете только для записи.
BEL9ILLI
4 / 4 / 0
Регистрация: 15.05.2009
Сообщений: 57
13.01.2012, 00:09  [ТС]     Ошибка при чтении из файла #3
Цитата Сообщение от Gepar Посмотреть сообщение
Вы файл открываете только для записи.
Упс, не ту функцию скопировал, вот нужная.
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
// конструктор [десериализвация (чтение из файла)]
c_array :: c_array (char *path) {
 
    FILE *f;
    
    // Открытие файла
    f = fopen (path, "r");
    //f = fopen (path, "rb");
 
    // Чтение количества измерений
    fscanf_s(f, "%d ", this->dimentions);
    //fread (&this->dimentions, sizeof(int), 1, f);
 
    this->size = new int[dimentions];
    //this->size = (int*) malloc (sizeof(int) * dimentions);
 
    this->coords = new int[dimentions];
    //this->coords = (int*) malloc (sizeof(int) * dimentions);
 
    // Чтение массива длин по каждому измерению
    for(int i = 0; i < this->dimentions; i++)
        fscanf_s(f, "%d ", this->size[i]);
    //fread (this->size, sizeof(int), this->dimentions, f);
    
    // Расчет длины
    this->length = 1;
    for (int i = 0; i < this->dimentions; i++)
        this->length *= this->size[i] ;
 
    this->data = new int[this->length];
    //this->data = (int*) malloc (sizeof(int) * this->length);
 
    for(int i = 0; i < this->length; i++)
        fscanf_s(f, "%d ", this->data[i]);
    //fread (this->data, sizeof(int), this->length, f);
 
    fclose (f);
}
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
13.01.2012, 08:26     Ошибка при чтении из файла #4
нужно проверять файл при открытии, открылся он или нет
fscanf_s - нестандартная функция
BEL9ILLI
4 / 4 / 0
Регистрация: 15.05.2009
Сообщений: 57
13.01.2012, 09:40  [ТС]     Ошибка при чтении из файла #5
так файл открывается, данные заполняться не хотят
zss
Модератор
Эксперт С++
 Аватар для zss
5953 / 5558 / 1787
Регистрация: 18.12.2011
Сообщений: 14,204
Завершенные тесты: 1
13.01.2012, 09:57     Ошибка при чтении из файла #6
При вводе надо передавать АДРЕСА переменных, а не значения, например
fscanf_s(f, "%d ", &this->dimentions);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2012, 10:12     Ошибка при чтении из файла
Еще ссылки по теме:

Ошибка при вызове метода класса, при чтении из файла C++
Ошибка при чтении массива из файла C++
C++ Ошибка при чтении файла

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

Или воспользуйтесь поиском по форуму:
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
13.01.2012, 10:12     Ошибка при чтении из файла #7
Цитата Сообщение от BEL9ILLI Посмотреть сообщение
так файл открывается
откуда ты знаешь ?
Yandex
Объявления
13.01.2012, 10:12     Ошибка при чтении из файла
Ответ Создать тему
Опции темы

Текущее время: 04:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru