#c #loops #getchar
#c #циклы #getchar
Вопрос:
Я новичок, пишущий программу на C для школы, где входные данные перенаправляются в файл. Я должен использовать getchar()
только для извлечения информации. Я использую Windows Visual 2008 и не могу понять, почему мой код не завершает цикл. Кто-нибудь может мне помочь? Спасибо.
while (rec != 'EOF')
{
while (rec != 'n')
{
variable=getchar;
printf ("this is variable %c");
}
}
Ответ №1:
while (rec != EOF)
{
rec=getchar();
if((rec != 'n') amp;amp; (rec != EOF)){
printf ("this is variable %cn",rec);
}
}
Комментарии:
1. Вы оставили ошибки в
getchar
without()
и в printf, который не привязывает%c
кrec
. Однако вы установили значениеrec
в лучшем месте.
Ответ №2:
int c = 0;
while (c != EOF) {
c = getchar();
if (c == 'n')
break;
printf("c:%cn", c);
}
Комментарии:
1. Это заканчивается на первом
n
. Я не уверен, что это то, что нужно.
Ответ №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:%cn", c);
}
c = getchar();
}
Если вам просто нужны символы в первой строке:
int c = getchar();
while (c != EOF amp;amp; c != `n`)
{
printf("c:%cn", c);
c = getchar();
}