Как читать файл построчно в C?
У меня есть текстовый файл до 100 IP-адресов, по 1 на строку. Мне нужно прочитать каждый адрес, как строку, в массив под названием «список». Во-первых, я предполагаю, что «список» должен быть двумерным массивом символов. Каждый IP-адрес имеет длину 11 символов, 12, если вы включаете «\ 0», поэтому я объявил список следующим образом:
char list[100][12];
Далее я пытаюсь использовать fgets для чтения потока:
for (i = 0; i < 100; i++)
{
if (feof(stream))
break;
for (j = 0; j < 12; j++)
fgets(&list[i][j], 12, stream);
count++;
}
Чтобы проверить, правильно ли прочитаны строки, я пытаюсь вывести их:
for (i = 0; i < 5; i++)
{
for (j = 0; j < 11; j++)
printf("%c", list[i][j]);
printf("\n");
}
После запуска программы понятно, что что-то не так. Будучи новичком, я не уверен, что, но я предполагаю, что я читаю файл неправильно. Там нет ошибок. Компилируется, но печатает странный адрес в две строки.
Редактировать:
Я заменил код fgets следующим:
for (i = 0; i < 100; i++)
{
if (feof(stream))
break;
fgets(list[i], 12, stream);
count++;
}
Теперь он печатает пять строк, но это «случайные» символы из памяти.