Ваша проблема заключается в утверждении:
word[strlen(word) - 1] = "\0";
При попытке присвоить указатель строке C элементу массива, целому типу char
, следовательно,сообщение об ошибке "Assignment makes integer from pointer without cast"
.
Что вы должны были написать:
word[strlen(word) - 1] = `\0`;
, который присваивает символ элементу массива.
AsКроме того, вы должны следить за строками длиной более (около) 100 символов.Вы прочтете только первую часть строки, в конце не будет символа новой строки, а остальную часть строки вы прочтете как отдельную строку в следующий раз через цикл (иэто может произойти много раз, если у вас есть строка длиной, например, 1 КБ).
Для того чтобы это ни стоило, вы можете исправить эти проблемы с помощью кода следующим образом:
if ((s = strlen (word)) > 0) {
if (s[s-1] != '\n') {
// Line was too long, do something intelligent.
} else {
s[s-1] = '\0';
}
}