#include<stdio.h>
int main()
{
char c;
c=getchar();
while(c!='\0')
{
printf("%c",c);
c=getchar();
}
return 0;
}
Мы хотели бы завершить программу, введя с клавиатуры символ NULL, но он не работает.
#include<stdio.h>
int main()
{
char c;
c=getchar();
while(c!='\0')
{
printf("%c",c);
c=getchar();
}
return 0;
}
Мы хотели бы завершить программу, введя с клавиатуры символ NULL, но он не работает.
Как отмечалось ранее, ввести символ '\ 0' из терминала можно следующим образом:
Ctrl + @
Ctrl + ПРОБЕЛ
Соответствующий код c может быть следующим:
#include <stdio.h>
int main()
{
char c;
do
{
c = getchar();
if ((c == EOF) || (c == '\0'))
{
break;
}
printf("%c", c);
} while (c != '\n');
return 0;
}
c
(он должен бытьint c;
) и изменить условие цикла:while (c != EOF)
- person melpomene   schedule 07.07.2019'\n'
, а не'\0'
. - person melpomene   schedule 07.07.2019string + nul-char
в качестве входных данных. Большинство вводятstring
и ожидают, что программа примет это в качестве входных данных. Вот почемуint c = getchar(); while (c != '\n' && c != EOF) c = getchar();
является нормой для символьного ввода. Для строчно-ориентированного вводаfgets()
(или POSIXgetline
) являются нормой. Для форматированного ввода затемfgets()
, за которым следуетsscanf()
(или в некоторых случаях простоfscanf()
). Выберите подходящий инструмент для работы. - person David C. Rankin   schedule 07.07.2019