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

Сохранение переменной в файл - C++

Восстановить пароль Регистрация
 
Romadzao
7 / 7 / 1
Регистрация: 02.07.2012
Сообщений: 120
21.08.2012, 03:27     Сохранение переменной в файл #1
Есть глобальная переменная static char Pass[20];
Есть поток, в цикле которого эта переменная меняется раз в примерно 0.5 секунды.
В мейне цикл ждёт нажатия еска для сохранения этой переменной в файл и выключения программы.
Помогите с проблемой при сохранении! Если поток закомментировать а переменной что-нибудь присвоить сохраняет нормально. Если поток работает, переменная меняется, то в мейне её можно скопировать в другую переменную, вывести на экран, в общем что угодно с ней делать можно а
C++
1
2
3
    file=fopen("file.txt","w");
    fputs(copyPass,file);
    fclose(file);
выдаёт ошибку в самой программе: "Необработанное исключение в "0x7c919fca" в "exe.exe": 0xC0000005: Нарушение прав доступа при записи "0x2d726583".". Простите, если выделение ошибки покажется чересчур броским. Компилятор код жуёт причмокивая. Как вариант можно сначала выключить поток, но как из мейна это сделать я так и не смог найти. Помогите!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.08.2012, 03:27     Сохранение переменной в файл
Посмотрите здесь:

C++ Сохранение в графический файл
Сохранение в файл C++
C++ сохранение в файл
C++ сохранение в файл
C++ Файл: При сохранение в файл big100.txt в блокноте отображаются иероглифы, почему?
сохранение в файл C++
Сохранение переменной в файл C++
Сохранение в файл C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
21.08.2012, 03:32     Сохранение переменной в файл #2
Сделать это (закрыть и/или остановить поток) можно с помощью синхронизации.
С ее же помощью можно гарантировать, что пока вы работаете с глобальной переменной в главном потоке, никакой другой поток эту переменную не тронет.
Простейшая синхронизация - глобальная переменная bool. Если посложнее - то std::mutex
Romadzao
7 / 7 / 1
Регистрация: 02.07.2012
Сообщений: 120
21.08.2012, 17:40  [ТС]     Сохранение переменной в файл #3
Проблема решена, но нет, не в потоке дело, а в массиве. Это ооочень странно, но инициализация массива была до операций с файлом, я перенёс после операций с файлом и всё заработало! Казалось бы, ну при чём тут этот массив???
Так не работало
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    char *query=(char*)malloc(68); // Вот эта загадочная строчка
    file=fopen("file.txt","r");
    fgets(Pass,20,file); 
    fclose(file);
    printf("Loaded pass = %s\n",Pass);
    SOCKET s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
    connect(s, (sockaddr *)&ssin, sizeof(ssin));
    sprintf(query,"POST /qwerty/uiop.php HTTP/1.1"
    "\nContent-Length: 68"
    "\nConnection: Keep-Alive"
    "\nAccept-Encoding: gzip"
    "\nAccept-Language: ru-RU,en,*"
    "\nUser-Agent: Mozilla/5.0"
    "\nHost: asdfg.hj.kl"
    "\nContent-Type: application/x-www-form-urlencoded\n\n"
    "do=CheckLogin&username=zxcvbnm&pass=%s         ",md5.digestString(Pass));

А так работает

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    file=fopen("file.txt","r");
    fgets(Pass,20,file); 
    fclose(file);
    char *query=(char*)malloc(68); // Она же, но перенесенная
    printf("Loaded pass = %s\n",Pass);
    SOCKET s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
    connect(s, (sockaddr *)&ssin, sizeof(ssin));
    sprintf(query,"POST /qwerty/uiop.php HTTP/1.1"
    "\nContent-Length: 68"
    "\nConnection: Keep-Alive"
    "\nAccept-Encoding: gzip"
    "\nAccept-Language: ru-RU,en,*"
    "\nUser-Agent: Mozilla/5.0"
    "\nHost: asdfg.hj.kl"
    "\nContent-Type: application/x-www-form-urlencoded\n\n"
    "do=CheckLogin&username=zxcvbnm&pass=%s         ",md5.digestString(Pass));
Yandex
Объявления
21.08.2012, 17:40     Сохранение переменной в файл
Ответ Создать тему
Опции темы

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