|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Записать переменую в файл |
|
C/C++ - Записать переменую в файл
|
Пользователь Сообщения: 147 |
Профиль | Отправить PM | Цитировать кратко: я хочу что бы пользователь выберал управление.
в опциях человек может выбрать какая клавиша отвечается за верх какая за них и так далее... надо что бы код клавишы записывался в тхт файл. вид файла: 77 // клавиша вверх 79 // клавиша в низ и так далее. ну потом считывать с файла тоже помогите...просто не сильно дружу с файлами и что то не получается. |
|
Отправлено: 11:32, 29-06-2008 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать Запись.
#include <stdio.h> int main(int argc, char* argv[]) { int keyCode;char *keyName; FILE *fSettings; if ((fSettings = fopen("MyAppKey.txt","w"))!=NULL) { keyCode=77;keyName=" // key DOWN"; fprintf(fSettings, "%i%s\n",keyCode,keyName);// клавиша вверх keyCode=79;keyName=" // key UP"; fprintf(fSettings, "%i%s\n",keyCode,keyName); // клавиша в низ fclose(fSettings); } else printf("Error file operation."); return 0; } /*...*/ keyCode=77;keyName="key DOWN"; fprintf(fSettings, "%i \t %s\n",keyCode,keyName);// клавиша вверх /*...*/ Сама процедура чтения не вызывает особых отличий, от процедуры получения данных переменных, единственное что указывается ещё имя потока открытого файла /*...*/ if ((fSettings = fopen("MyAppKey.txt","r"))!=NULL) { /*Внимание! Этот код закомментирован и требует доработки while (!feof(fSettings)) { fscanf(fSettings, "%i \t %s\n", &keyCode, &keyName);// printf("\n%i %s", keyCode, keyName); } Внимание! Этот код закомментирован и требует доработки. Он лишь показывает идею считывания, а не её реализацию */ } /*...*/ |
Отправлено: 05:27, 30-06-2008 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 147
|
Профиль | Отправить PM | Цитировать отлично.
while (!feof(fSettings)) - !feof - не знаю такой команды. когда я писал // я расчитывал что вы поймете как комент просто ... в коде файла можно обойтись без него.. я хочу вообще закодить в двоичный что бы не льзя было изменять в файле. кстати хочу сразу сюданаписать.. есть варианты делать подсчет времени (засекание) без 2 потока? |
Отправлено: 12:02, 30-06-2008 | #3 |
Пользователь Сообщения: 147
|
Профиль | Отправить PM | Цитировать вот вопрос...как мне записывать в 1 строчку...а другое во второй
|
Отправлено: 01:23, 01-07-2008 | #4 |
Пользователь Сообщения: 147
|
Профиль | Отправить PM | Цитировать и ещё как избежать ввода клавиши которые не отлавливаются???
типо ctrl ? |
|
Отправлено: 01:53, 01-07-2008 | #5 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать DENoszone
Закодировать и/или работать в двоичном режиме? Закодировать самым примитивным способом можно указывая соответствующие коды символов согласно кодовой таблицы. Character Tables Двоичныё режим это соответственный режим чтения/записи файла, в котором всё может и оставаться по прежнему. А в примере уже всё так реализировано: использовать управляющий символ \n в (f)printf, про другие здесь. А на эти клавиши идёт реакция? Не стоит дописывать новым постом вопросы, разве прошло более чем три дня, лучше использовать редактирование поста, на который ещё нет ответа. |
Отправлено: 14:33, 01-07-2008 | #6 |
Пользователь Сообщения: 147
|
Профиль | Отправить PM | Цитировать про время загвостка.
и ещё в файле на какойто строчке пропущен символ, то что бы я мог сделать проверку..ifом это как сделать... и ещё для чтения из файла я использую int size; FILE*f=fopen("KeyCod.txt","r+"); if (f==0)return; char get[6]; if(fgets(get,10,f)!=0) size=atoi(get); else return; int*ptr=new int[size]; if(ptr==0)return; for(int i=0;i<size;i++){ fgets(get,10,f); ptr[i]=atoi(get); } fclose(f); и структура файла должна быть что бы первый символ говорил сколько строчек в файле..можно это как то убрать? ptr [i] - номер строчки. |
Отправлено: 18:48, 02-07-2008 | #7 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать get судя по написанному коду это массив из 6 ти символов.
atoi - функция преобразовывая символ в число. Естественно если символов не цифра, то возвращаемым значением будет 0. Можно подсчитать количество строк в файле, поиском служебных символов конец строки, возврат каретки (коды 13 и 10), но проще использовать упомянутую строчку кода - while (!feof(fSettings)) |
Отправлено: 19:16, 02-07-2008 | #8 |
Пользователь Сообщения: 147
|
Профиль | Отправить PM | Цитировать я не понимаю...
ну и как я буду проверять? вот у меня ptr [1] - это тот символ который отвечает за движение вверх. а как через то что ты сказал не понимаю+( |
Отправлено: 19:20, 02-07-2008 | #9 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать |
Отправлено: 20:10, 02-07-2008 | #10 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Файл *.img - не бутсектор, как записать на диск? | Котяра | Хочу все знать | 8 | 24-02-2009 08:31 | |
Как записать рипованный файл бОльшего размера в DVD (4,7 Gb)? | webser | Видео и аудио: обработка и кодирование | 1 | 17-12-2007 00:30 | |
Как записать mp3 файл на Audio CD диск? | vagner_HATE | Хочу все знать | 4 | 28-11-2005 11:21 | |
Как возможно перехватить задание, посланое на принтер и записать его в файл? | babki | Microsoft Windows NT/2000/2003 | 7 | 27-06-2005 18:02 | |
как записать звуковой файл при помощи микрофона. | peskov | Хочу все знать | 10 | 10-04-2003 19:29 |
|