Войти

Показать полную графическую версию : Записать переменую в файл


Страниц : 1 [2]

DENoszone
03-07-2008, 23:18
char get[1024]; - масив на 1024 символа? в строчке?
сейчас поробую

это избежал.
но проблема.
1. если какого то значения нету, то я посылаю его в функцию ввода значений в файл.
но как вернуть его от туда не знаю =( он просто зацикливается.
2. у меня идет так проверка
Getch(); / отлавливает нажатую клавишу
if (ptr[0]==a) / и сравнивает ... как мне теперь первую строчку вытащить?
{
if (ps.Y>1)
ps.Y-=2;
SetConsoleCursorPosition(h,ps);
}

Admiral
04-07-2008, 00:09
Просто 1024 число компьютерное :wink:, а вообще надо бы динамику прикрутить.
while(fgets(get, 1024, f) != NULL)
{
ptr=(atoi(get));
if (ptr[i]!=0)
printf("%s ",get);
else
//Вводим просто число в ptr[i] как в теме Я хочу запретить ввод букв. Как это сделать? (http://forum.oszone.net/thread-108817.html)
i++;
}

Всё же возврат к [I]Getch();

DENoszone
04-07-2008, 00:22
смотри
int size;
FILE*fSettings;
fSettings=fopen("KeyCod.txt","r+");
if (fSettings==0)return;
int* ptr = new int[];
int i=0;
char get[1024];
while(!feof(fSettings))
while(fgets(get, 1024, fSettings) != NULL)
{
ptr[i]=(atoi(get));
if ( (atoi(get))!=0)
printf("%d ",get);
else
cout<<"dasda";
i++;
}



Getch();
if (ptr[0]==a)
{
if (ps.Y>1)
ps.Y-=2;
SetConsoleCursorPosition(h,ps);
}
файл норм.
но оно не двигается. и сразу выводит 1243204.

Admiral
04-07-2008, 01:00
Вот так будет вернее
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{

FILE*fSettings;
fSettings=fopen("KeyCod.txt","r+");
if (fSettings==0)return 0;
int* ptr = new int[];
int i=0;
char get[1024];

while(fgets(get, 1024, fSettings) != NULL)
{
ptr[i]=(atoi(get));
if ((ptr[i])==0)
{//далее вставка из темы Я хочу запретить ввод букв. Как это сделать? (http://forum.oszone.net/thread-108817.html)
int chislo;
StartAgaine:
printf("\nHi! Please enter the NUMBERS only ");
if ((scanf("%d",&chislo))!=0)
{
ptr[i]=chislo;
}
else
{
fflush(stdin);
goto StartAgaine;
}
}//конец вставки из темы Я хочу запретить ввод букв. Как это сделать? (http://forum.oszone.net/thread-108817.html)
printf("%i ",ptr[i]);
i++;
}
return 0;
}

DENoszone
04-07-2008, 01:07
если файл со всеми значениями ...
то меня просто посылают...

{
int chislo;
StartAgaine:
printf("\nHi! Please enter the NUMBERS only ");
if ((scanf("%d",&chislo))!=0)
{
ptr[i]=chislo;
}
else
{
fflush(stdin);
goto StartAgaine;
}
+ не это надо использовать а гетч. так как мне надо что пользователь клавишу нажал.

Admiral
04-07-2008, 01:28
То есть после значений 6ти строчек прога должна уходить восвояси? Тогда проверка переменной i на соответствующее значение и говорим пользователю, что все настройки загружены.

DENoszone
04-07-2008, 01:31
если все 6 строчек существуют, то надо что бы проходило дальше а оно не проходит

Admiral
04-07-2008, 01:36
Дальше по коду и хватит читать файл?
while(fgets(get, 1024, fSettings) != NULL)
{
if (i ==6) break;
/*...*/
}
Дальше по циклу и ранее работало.

DENoszone
04-07-2008, 01:44
я запутался.
мне надо:
проверяет по масиву если есть пустая то надо её ввести.
если все на месте продолжить код.


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

Admiral
04-07-2008, 02:01
DENoszone, стоит внимательно пересмотреть тему, что бы утрясти хронологию изменения.
Вот что делает код 24м посте (http://forum.oszone.net/post-841836-24.html).
Он читает по строчке из файла числа. Если строчка пустая, или на ней символ или цифра 0 (надеюсь такой код не используется) то он просит ввести число и в ptr[i] уходит значение не из файла, а именно число с клавы пользователём.
Добавление к коду из 28го поста (http://forum.oszone.net/post-841836-24.html) позволяет интересоваться только значениями 6ти первых строк файла.
Код на первой странице можно переделать и добавить к текущему, что б сбрасывать инфу в файл в правильному 6ти строчному с числами на каждой строчке формате. Так сказать на будущее правильное чтение.

DENoszone
04-07-2008, 02:06
понял одно...
лучше всего..
надо проверять есть ли в файле пустые строки первые 6 ?
если есть отсылать пользователя в функцию (она уже есть) что бы он там ввел значния все!
и продолжить работу...гетч отлавливает значение сравнивает его с ptr[1] если равно то действия (ну это уже не важно)
ах да и если файла вообще нету..то опять в функцию.
сенх.

Admiral
04-07-2008, 02:17
DENoszone, более подробно про работу с файлами например можна ещё узнать из 12й главы книги А. Нейбауэр. Моя первая программа на C/C++ (http://www.piter.com/lib/978588782056/c_v.phtml?fil=c_v12)
Я уже приводил линки на неё в теме Я хочу запретить ввод букв. Как это сделать? (http://forum.oszone.net/thread-108817.html).

DENoszone
05-07-2008, 06:55
вот я ... ***
моя задача решалась очень просто... проверкой в ptr[] - если там ноль...то кинуть что бы написал управление.




© OSzone.net 2001-2012