Функция get_word предназначена для чтения слова из стандартного ввода и его сохранения. Сохранение следующего слова после белого символа и возврат EOF на EOF, но я все еще в бесконечном цикле. htab_lookup_add - это некоторая функция для сохранения слова в таблицу. Также кажется, что проблема «Слишком длинное сообщение» никогда не печатается, но это не та проблема, которую я сейчас пытаюсь решить.
int get_word(char *s, int max, FILE *f){
s = malloc(sizeof(char) * max);
int c;
int i = 0;
while((c = getc(f))){
if(i > max || isspace(c)){
break;
}
s[i++] = c;
}
s[i] = '\0';
if(c == EOF){
return EOF;
}
return i;
}
while(get_word(word, (maxchar + 1), stdin) != EOF){
if(strlen(word) > maxchar){
printf("Too long!\n");
}
htab_lookup_add(table, word);
}