fscanf
возвращает количество совпадающих элементов или EOF (обычно это -1) в конце файла.Итак, вы хотите сказать
while(fscanf(f, " %s", linha) == 1 )
Поскольку NULL равен 0, а поскольку fscanf
возвращает 1 при успешном совпадении и -1 при достижении конца файла, это, вероятно, объясняет, почему у вас было бесконечное числоloop.
Кстати, я также изменил ваш &linha
на linha
.Вам обычно нужно &
для переменных, которые вы передаете scanf
, , за исключением , когда вы читаете строки с %s
.В этом случае, поскольку linha
является массивом, указатель передается автоматически, без необходимости использования &
.