Показать полную графическую версию : Записать переменую в файл
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);
}
Просто 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.
Вот так будет вернее
#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;
}
+ не это надо использовать а гетч. так как мне надо что пользователь клавишу нажал.
То есть после значений 6ти строчек прога должна уходить восвояси? Тогда проверка переменной i на соответствующее значение и говорим пользователю, что все настройки загружены.
DENoszone
04-07-2008, 01:31
если все 6 строчек существуют, то надо что бы проходило дальше а оно не проходит
Дальше по коду и хватит читать файл?
while(fgets(get, 1024, fSettings) != NULL)
{
if (i ==6) break;
/*...*/
}
Дальше по циклу и ранее работало.
DENoszone
04-07-2008, 01:44
я запутался.
мне надо:
проверяет по масиву если есть пустая то надо её ввести.
если все на месте продолжить код.
з.ы или вообще если в файле есть хоть одна пустая строчка кинуть на определеную фунецию чел все заново вводит.
и обратно продолжает. + главное что ptr[] - пахал..
мне надо завтро 9 часов...в 8 выходить...плиз покажи как.
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] если равно то действия (ну это уже не важно)
ах да и если файла вообще нету..то опять в функцию.
сенх.
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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.