Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Записать переменую в файл

Ответить
Настройки темы
C/C++ - Записать переменую в файл

Пользователь


Сообщения: 147
Благодарности: 0

Профиль | Отправить PM | Цитировать


кратко: я хочу что бы пользователь выберал управление.
в опциях человек может выбрать какая клавиша отвечается за верх какая за них и так далее...
надо что бы код клавишы записывался в тхт файл.
вид файла:
77 // клавиша вверх
79 // клавиша в низ


и так далее.

ну потом считывать с файла тоже помогите...просто не сильно дружу с файлами и что то не получается.

Отправлено: 11:32, 29-06-2008

 

Пользователь


Сообщения: 147
Благодарности: 0

Профиль | Отправить PM | Цитировать


и что это должно сделать???
у меня фигня вылетает =(

Отправлено: 20:19, 02-07-2008 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Если в size была верно указанная последняя строчка то переделанный код должен был делать идентичные действия что и ранее.

Отправлено: 20:21, 02-07-2008 | #12


Пользователь


Сообщения: 147
Благодарности: 0

Профиль | Отправить PM | Цитировать


Давайте все уточним.
у меня код считывания.
Код: Выделить весь код
					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);
как я понял вы мне предложили изменить на
Код: Выделить весь код
					int size;
                                                            int i=0;
					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++) while (!feof(fSettings))
                                                                        {
							fgets(get,10,f);
							ptr[i]=atoi(get);
                                                                                    i++
						}
						
						fclose(f);
это мне поможет как поверять если в ptr[i] число если нету...то использовать по стандарту.

Отправлено: 20:27, 02-07-2008 | #13


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Давайте уточним, приведу код целиком.
Код: Выделить весь код
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
	
	FILE*f=fopen("KeyCod.txt","r+");
	if (f==0) return 0;

	int* ptr = new int[];
	int i=0;
	char get[6];
	while(!feof(f))
	{
		fgets(get,i,f);
		ptr[i]=atoi(get);
		printf(" %i ",ptr[i]);
		i++;
	}
	fclose(f);
	
	return 0;
}
Возвращаясь к atoi то он нужен в коде для того что б присвоить численные значения из файла к соответствующим численным переменным.

Отправлено: 20:59, 02-07-2008 | #14


Пользователь


Сообщения: 147
Благодарности: 0

Профиль | Отправить PM | Цитировать


ну он у меня тупо вылетает...может я не то пониааю..ии что?
мне потом надо стравнивать
ptr[1] - если нажата клавиша 80 то делается шаг вниз.

Отправлено: 21:09, 02-07-2008 | #15


Пользователь


Сообщения: 147
Благодарности: 0

Профиль | Отправить PM | Цитировать


вопрос?
как записать число в определеную строчку к примеру 7

если в файле встречается в строчке 0 - ну тоесть в строчки не чего нету...то послать на какуюту функцию.

Отправлено: 17:54, 03-07-2008 | #16


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Записать не проблема
Код: Выделить весь код
for (int i=1;i<7;i++)
	fprintf(f,"%i\n",i);
fprintf(f,"%i",i);
А вот дописать нужно будет предусмотреть не стирание предыдущих строчек. Проще всего это сделать если держать всё в массиве или структуре. Но лучше работать в двоичном режимы ибо понятие строчки в файле нет, а только служебные символы.

Пустая строчка или перевод и возврат каретки обозначается как \n
Код: Выделить весь код
int c;
    
    while( (c=getc(f)) != EOF)
    {
        if( c != '\n')    printf( "%i ",  c);
        else              printf( "\n");
    }
    fclose(f);
Checking for a blank line in an input file
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:03, 03-07-2008 | #17


Пользователь


Сообщения: 147
Благодарности: 0

Профиль | Отправить PM | Цитировать


1. спасибо
2. не оч. понял.
вот естьь файл:

7 \не важно
\ пропущен символ
80
77
76
32
9
1 \ не важно какой символ


пропущенный символ это ptr[0] ptr[1]= 80 и так далее...
вот надо что бы оно проверяло если что то там....и если нету...то или записывало в эту строчку..или ещё что то делало...

хотя можно как то один раз считать с файла ... в какой то другой масив ptr1[] где можно было бы спокойно присвоить ptr[0] - любое значение.

Отправлено: 19:16, 03-07-2008 | #18


Пользователь


Сообщения: 147
Благодарности: 0

Профиль | Отправить PM | Цитировать


вот знаю...алгоритм...
но не назю релизацию.
проверка..если в файле нету первых 6 строчек хотя бы одной...
то я буду пересылать в одну функцию...

Отправлено: 20:30, 03-07-2008 | #19


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
	
	FILE*f=fopen("KeyCod.txt","r+");
	if (f==0) return 0;

	int* ptr = new int[];
	int i=0;
	char get[1024];
	while(!feof(f)) эта строчка не нужна так следом за ней дублирующая её функции
	while(fgets(get, 1024, f) != NULL)
	{
		if ( (atoi(get))!=0)
		printf("%s ",get);
		else
		printf("Na strochke %i sumvol %s vmesta chisla ili strochka pystaya", i, get);//проверка..если в файле нету первых 6 строчек может быть сдесь
		i++;
	}
	fclose(f);
	
	return 0;
}

Последний раз редактировалось Admiral, 04-07-2008 в 01:05. Причина: указал не нужную строчку кода

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:13, 03-07-2008 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Записать переменую в файл

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Файл *.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




 
Переход