Как читать файл построчно в 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++;
  }

Теперь он печатает пять строк, но это «случайные» символы из памяти.

Ответы на вопрос(7)

Ваш ответ на вопрос