Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
BEL9ILLI
4 / 4 / 1
Регистрация: 15.05.2009
Сообщений: 57
1

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

12.01.2012, 23:47. Просмотров 1077. Ответов 6
Метки нет (Все метки)

Файл открывается, но читаться из него информация не хочется.
Исходник

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
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2012, 23:47
Ответы с готовыми решениями:

Ошибка при чтении файла
Необработанное исключение по адресу 0x0FE4172C (msvcp140d.dll) в .exe:...

Ошибка при чтении файла
Есть вот такой код: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include...

Ошибка при чтении из файла
Помогите разобраться с чтением из файла. Листинг указан ниже. Программа...

Ошибка при чтении из текстового файла
Имеется следующий код: FILE* b = fopen(&quot;baza.txt&quot;, &quot;r&quot;); char line; ...

Ошибка при чтении данных из файла
Имеем такую функцию чтения даных из фаила: void chtenie(char *imafaila) { ...

6
Gepar
1181 / 537 / 77
Регистрация: 01.07.2009
Сообщений: 3,517
12.01.2012, 23:59 2
Вы файл открываете только для записи.
0
BEL9ILLI
4 / 4 / 1
Регистрация: 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);
}
0
accept
4833 / 3255 / 454
Регистрация: 10.12.2008
Сообщений: 10,569
13.01.2012, 08:26 4
нужно проверять файл при открытии, открылся он или нет
fscanf_s - нестандартная функция
0
BEL9ILLI
4 / 4 / 1
Регистрация: 15.05.2009
Сообщений: 57
13.01.2012, 09:40  [ТС] 5
так файл открывается, данные заполняться не хотят
0
zss
Модератор
Эксперт С++
7182 / 6679 / 4228
Регистрация: 18.12.2011
Сообщений: 17,627
Завершенные тесты: 1
13.01.2012, 09:57 6
При вводе надо передавать АДРЕСА переменных, а не значения, например
fscanf_s(f, "%d ", &this->dimentions);
0
accept
4833 / 3255 / 454
Регистрация: 10.12.2008
Сообщений: 10,569
13.01.2012, 10:12 7
Цитата Сообщение от BEL9ILLI Посмотреть сообщение
так файл открывается
откуда ты знаешь ?
0
13.01.2012, 10:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2012, 10:12

Ошибка при чтении массива из файла
Доброго времени суток всем участникам форума! При написании программы...

Ошибка при чтении текстового файла
while (!h.eof()) { h.getline(a1, 30); h &gt;&gt; a2; cout &lt;&lt; a1 &lt;&lt; &quot; - &quot;...

Не понятная ошибка при чтении из файла
#include&lt;iostream&gt; #include&lt;iomanip&gt; #include&lt;string&gt; #include&lt;fstream&gt;...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru