Заполнитель %s
используется для чтения слова в строку.
По умолчанию длина этого слова не ограничена. Спецификатор ширины поля может использоваться вместе с заполнителем% s, чтобы ограничить число байтов, которые будут записаны в буфер.
Поэтому вы должны сделать что-то вроде:
char name[100];
fscanf(wp, "%99s", name);
Для Например, если длина name
, полученная из файла, превышает 100, эта функция будет переполнена. Проблема похожа на scanf
также.