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

Ошибка "Попытка чтения в запрещенную память" при работе с файлами - C++

Восстановить пароль Регистрация
Другие темы раздела
SFML Библиотека SFML отказывается подключаться g++ http://www.cyberforum.ru/cpp-beginners/thread1178380.html
библиотека SFML отказывается подключаться g++ вывод g++ /usr/include/SFML/System/Clock.hpp:39: error: variable ‘sf::SFML_API sf::Clock’ has initializer but incomplete type /usr/include/SFML/System/Clock.hpp:41: error: expected primary-expression before ‘public’ /usr/include/SFML/System/Clock.hpp:41: error: expected ‘}’ before ‘public’ /usr/include/SFML/System/Clock.hpp:41: error: expected...
C++ Связные списки. Определить количество узлов между двумя выбранными указателями #include <iostream> #include <cstdlib> using namespace std; struct Node { int data; Node* next; http://www.cyberforum.ru/cpp-beginners/thread1178373.html
C++ Remove_if для std::list
Здравствуйте! Помогите мне разобраться,пожалуйста.Перечитал кучу всего,но так и не понял ,что можно писать в аргументе метода remove_if. #include<iostream> #include<list> #include<algorithm> using namespace std; void printlist(list<int> a) { copy(a.begin(),a.end(),ostream_iterator<int>(cout," ")); }
C++ Как считать n-ое слово в строке
Как найти любое (n-ное) слово в строке? Слова(группа слов) разделяются запятыми
C++ Перенос из directx8 в directx9, ошибка в SetVertexShader http://www.cyberforum.ru/cpp-beginners/thread1178331.html
Доброе время суток. Есть кусок кода написанного для directx8 #include <d3dx8.h> #include <mmsystem.h> #include <C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include\WinNT.h> #include <d3dx8mesh.h> #include <Windows.h> #include "C:\Program Files (x86)\Microsoft DirectX SDK (August 2009)\Include\dinput.h"
C++ Переставить элементы в этом массиве Ввести массив чисел с задаваемым количеством элементов и некоторое число. Без использования другого массива переставить элементы в этом массиве так, чтобы в начале массива оказались элементы не меньше некоторого числа, а в конце массива - элементы меньше этого числа, с сохранением порядка их взаимного расположения в исходном массиве. Вывести преобразованный массив. Пример вводимых данных: 8... подробнее

Показать сообщение отдельно
TheStigger
0 / 0 / 0
Регистрация: 16.05.2014
Сообщений: 14
17.05.2014, 00: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
void OutputNote(int& day, int& month, int& year)
    {
        organizer note[N];
        note[0].date = DateToString(day, month, year);//присваиваем первой структуре дату
        ImportFromFile(note);
        String^ sys_str = gcnew String(note[0].text.c_str());
        richTextBox2->Text = sys_str;
    }
 
    void ImportFromFile(organizer note[N])
    {
        organizer buff[N];
        FILE  *fp;
        register int i;
 
        if ((fp = fopen("cash", "rb")) == NULL) {
            MessageBox::Show("Error while opening the file.\n");
            return;
        }
        /*for (int j = 0; j < N; j++)
        {
            buff[j].text[0] = '\0';
        }*/
        for (i = 0;; i++)
        if (fread(&buff[i], sizeof(struct organizer), 1, fp) == 1)
        {
            break;
        }
        else
        {
            if (feof(fp)) break;
            MessageBox::Show("Error while reading the file.\n");
        }
        note[0].text = buff[i].text;
        fclose(fp);
    }
 
void ExportToFile(organizer note[N])
    {
        FILE  *fp;
        register int i;
        if ((fp = fopen("cash", "ab+")) == NULL) {
            MessageBox::Show("Error while opening the file.\n");
            return;
        }
 
        for (i = 0; i<N; i++)
        if (fwrite(&note[0],sizeof(struct organizer), 1, fp) != 1)
            MessageBox::Show("Error while writing to file.\n");
        fclose(fp);
    }
 
...
//Экспорт вызывается нажатием на кнопку 
    private: System::Void button3_Click(System::Object^  sender, System::EventArgs^  e) {
                 String^ textbox_text = richTextBox2->Text;
                 organizer note[N];
                 MarshalString(textbox_text, note[0].text);
                 int day=0, month=0, year=0;
                 CurrentDate(day, month, year);
                 note[0].date = DateToString(day, month, year);
                 ExportToFile(note);
 
Текущее время: 23:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru