Из того, что я прочитал, я думаю, что ваша программа делает
#include <stdio.h>
int main(int argc, char* argv[]) {
char input[100];
while (1) {
char* x=fgets(input, 40, stdin);
printf("Hello%c\n",*x);
}
}
Со страницы руководства fgets
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
fgets()
возвращает s в случае успеха и NULL
в случае ошибки или в случае окончания файла, когда символы не были прочитаны.
Когда fgets()
встречает конец файла, возвращаетсянулевой указатель, если вы попытаетесь следовать ему, произойдет ошибка сегментации.
Что вам нужно сделать, это проверить возвращаемое значение
#include <stdio.h>
int main(int argc, char* argv[]) {
char input[100];
char* x;
while (x=fgets(input, 40, stdin)) {
printf("Hello%x\n",x);
}
}
Обратите внимание на присвоение в while (x=fgets(...))
предназначен