![]() |
Записать переменую в файл
кратко: я хочу что бы пользователь выберал управление.
в опциях человек может выбрать какая клавиша отвечается за верх какая за них и так далее... надо что бы код клавишы записывался в тхт файл. вид файла: 77 // клавиша вверх 79 // клавиша в низ и так далее. ну потом считывать с файла тоже помогите...просто не сильно дружу с файлами и что то не получается. |
Запись.
Код:
#include <stdio.h> Код:
/*...*/ Сама процедура чтения не вызывает особых отличий, от процедуры получения данных переменных, единственное что указывается ещё имя потока открытого файла Код:
/*...*/ |
отлично.
while (!feof(fSettings)) - !feof - не знаю такой команды. когда я писал // я расчитывал что вы поймете как комент просто ... в коде файла можно обойтись без него.. я хочу вообще закодить в двоичный что бы не льзя было изменять в файле. кстати хочу сразу сюданаписать.. есть варианты делать подсчет времени (засекание) без 2 потока? |
вот вопрос...как мне записывать в 1 строчку...а другое во второй
|
и ещё как избежать ввода клавиши которые не отлавливаются???
типо ctrl ? |
DENoszone
Закодировать и/или работать в двоичном режиме? Закодировать самым примитивным способом можно указывая соответствующие коды символов согласно кодовой таблицы. Character Tables Двоичныё режим это соответственный режим чтения/записи файла, в котором всё может и оставаться по прежнему. А в примере уже всё так реализировано: использовать управляющий символ \n в (f)printf, про другие здесь. А на эти клавиши идёт реакция? Не стоит дописывать новым постом вопросы, разве прошло более чем три дня, лучше использовать редактирование поста, на который ещё нет ответа. |
про время загвостка.
и ещё в файле на какойто строчке пропущен символ, то что бы я мог сделать проверку..ifом это как сделать... и ещё для чтения из файла я использую Код:
int size; и структура файла должна быть что бы первый символ говорил сколько строчек в файле..можно это как то убрать? ptr [i] - номер строчки. |
get судя по написанному коду это массив из 6 ти символов.
atoi - функция преобразовывая символ в число. Естественно если символов не цифра, то возвращаемым значением будет 0. Можно подсчитать количество строк в файле, поиском служебных символов конец строки, возврат каретки (коды 13 и 10), но проще использовать упомянутую строчку кода - while (!feof(fSettings)) |
я не понимаю...
ну и как я буду проверять? вот у меня ptr [1] - это тот символ который отвечает за движение вверх. а как через то что ты сказал не понимаю+( |
Покажу на коде.
Код:
int i=0; |
и что это должно сделать???
у меня фигня вылетает =( |
Если в size была верно указанная последняя строчка то переделанный код должен был делать идентичные действия что и ранее.
|
Давайте все уточним.
у меня код считывания. Код:
int size; Код:
int size; |
Давайте уточним, приведу код целиком.
Код:
#include <stdio.h> |
ну он у меня тупо вылетает...может я не то пониааю..ии что?
мне потом надо стравнивать ptr[1] - если нажата клавиша 80 то делается шаг вниз. |
вопрос?
как записать число в определеную строчку к примеру 7 если в файле встречается в строчке 0 - ну тоесть в строчки не чего нету...то послать на какуюту функцию. |
Записать не проблема
Код:
for (int i=1;i<7;i++) Пустая строчка или перевод и возврат каретки обозначается как \n Код:
int c; |
1. спасибо
2. не оч. понял. вот естьь файл: 7 \не важно \ пропущен символ 80 77 76 32 9 1 \ не важно какой символ пропущенный символ это ptr[0] ptr[1]= 80 и так далее... вот надо что бы оно проверяло если что то там....и если нету...то или записывало в эту строчку..или ещё что то делало... хотя можно как то один раз считать с файла ... в какой то другой масив ptr1[] где можно было бы спокойно присвоить ptr[0] - любое значение. |
вот знаю...алгоритм...
но не назю релизацию. проверка..если в файле нету первых 6 строчек хотя бы одной... то я буду пересылать в одну функцию... |
Код:
#include <stdio.h> |
char get[1024]; - масив на 1024 символа? в строчке?
сейчас поробую это избежал. но проблема. 1. если какого то значения нету, то я посылаю его в функцию ввода значений в файл. но как вернуть его от туда не знаю =( он просто зацикливается. 2. у меня идет так проверка Код:
Getch(); / отлавливает нажатую клавишу |
Просто 1024 число компьютерное :wink:, а вообще надо бы динамику прикрутить.
Код:
while(fgets(get, 1024, f) != NULL) |
смотри
Код:
int size; но оно не двигается. и сразу выводит 1243204. |
Вот так будет вернее
Код:
#include <stdio.h> |
если файл со всеми значениями ...
то меня просто посылают... Код:
{ |
То есть после значений 6ти строчек прога должна уходить восвояси? Тогда проверка переменной i на соответствующее значение и говорим пользователю, что все настройки загружены.
|
если все 6 строчек существуют, то надо что бы проходило дальше а оно не проходит
|
Дальше по коду и хватит читать файл?
Код:
while(fgets(get, 1024, fSettings) != NULL) |
я запутался.
мне надо: проверяет по масиву если есть пустая то надо её ввести. если все на месте продолжить код. з.ы или вообще если в файле есть хоть одна пустая строчка кинуть на определеную фунецию чел все заново вводит. и обратно продолжает. + главное что ptr[] - пахал.. мне надо завтро 9 часов...в 8 выходить...плиз покажи как. |
DENoszone, стоит внимательно пересмотреть тему, что бы утрясти хронологию изменения.
Вот что делает код 24м посте. Он читает по строчке из файла числа. Если строчка пустая, или на ней символ или цифра 0 (надеюсь такой код не используется) то он просит ввести число и в ptr[i] уходит значение не из файла, а именно число с клавы пользователём. Добавление к коду из 28го поста позволяет интересоваться только значениями 6ти первых строк файла. Код на первой странице можно переделать и добавить к текущему, что б сбрасывать инфу в файл в правильному 6ти строчному с числами на каждой строчке формате. Так сказать на будущее правильное чтение. |
понял одно...
лучше всего.. надо проверять есть ли в файле пустые строки первые 6 ? если есть отсылать пользователя в функцию (она уже есть) что бы он там ввел значния все! и продолжить работу...гетч отлавливает значение сравнивает его с ptr[1] если равно то действия (ну это уже не важно) ах да и если файла вообще нету..то опять в функцию. сенх. |
DENoszone,
|
вот я ... ***
моя задача решалась очень просто... проверкой в ptr[] - если там ноль...то кинуть что бы написал управление. |
Время: 05:06. |
Время: 05:06.
© OSzone.net 2001-