положить в C программирования в файлах - PullRequest
1 голос
/ 01 июля 2011

Я просто создаю свою собственную библиотеку по обработке файлов, чтобы сделать ее более гибкой, но я застрял в этой точке, посмотрите нижеприведенную программу

int filewrite(char *filename,unsigned char number)
{
    FILE *dill;

    if((dill=fopen(filename,"r"))==0)
        return(0);// error no such file exists  returns 0
    else
    {

        if(number==0)
        {
            dill=fopen(filename,"w");

            while(number!='x')
            {
                number=getche();
                putc(number,dill);
            }
        }
        else
        {
            dill=fopen(filename,"a+");

            while(number!='x')
            {
                number=getche();
                putc(number,dill);
            }
        }
    }
}

например, я поставил условие не равным x, поэтому, если я введу букву x, оно будет прекращено, но я хочу, чтобы это тоже использовалось. Но каково условие использования всех букв, цифр и специальных символов, когда мы записываем в файл, потому что, если я нажму Enter, он перейдет к следующей строке, но не завершится, и я хочу использовать тоже ввод, но как сказать, что это EOF, использующий putc? Помогите мне, ребята

Ответы [ 2 ]

0 голосов
/ 01 июля 2011

Если я правильно понимаю (я не говорю, что понимаю), вы хотите иметь возможность вводить любой символ в файловый поток, но также иметь возможность завершить поток, нажав символ 'x' .Если это то, что вы спрашиваете, то это невозможно.Вам придется придумать другой способ прекратить ваш поток.Например, вы можете попробовать определить, нажата ли CTRL + другая кнопка вместо 'x' .

0 голосов
/ 01 июля 2011

Если вы хотите, чтобы он прерывался при нажатии клавиши ввода, вы можете изменить цикл while на следующее:

while((number != 'x') && (number != '\r'))
{
    number=getche();
    putc(number,dill);
}

Вы также должны закрыть указатели файлов, используя fclose(dill), чтобы убедиться, что поток очищенфайлы не остаются открытыми после завершения вашей программы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...