getchar() в цикле while Вопрос

Я новичок, пишу программу C для школы, где ввод перенаправляется в файл. Я должен использовать getchar() только для получения информации. Я использую Windows Visual 2008 и не могу понять, почему мой код не выходит из цикла. Может кто-нибудь мне помочь? Спасибо.

while (rec != 'EOF')
{
    while (rec != '\n')
    { 
        variable=getchar;
        printf ("this is variable %c");
    }
}

person Nathen    schedule 20.04.2011    source источник


Ответы (3)


Ответ зависит от того, что действительно необходимо. Если вы хотите напечатать каждый символ, кроме новых строк, вам нужно что-то вроде:

int c = getchar(); // Note c is defined as an int otherwise the loop condition is broken
while (c != EOF)
{
    if (c != `\n`)
    {
        printf("c:%c\n", c);
    }
    c = getchar();
}

Если вам просто нужны символы в первой строке:

int c = getchar();
while (c != EOF && c != `\n`)
{
    printf("c:%c\n", c);
    c = getchar();
}
person JeremyP    schedule 20.04.2011

person    schedule
comment
Вы оставили ошибки на getchar без () и printf, который не связывает %c с rec. Однако вы установили значение rec в лучшем месте. - person Aleksi Yrttiaho; 20.04.2011

person    schedule
comment
Это останавливается на первом \n. Я не уверен, что это то, что нужно. - person JeremyP; 20.04.2011