Считывание данных с файла в массив - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Считываю данные с файла в массив но все индексы массива принимают последнее значение строки. Подскажите пожалуйста как это можно исправить.
Листинг программы
  1. int main()
  2. {
  3. char *satir[50];
  4. int sayac = 0;
  5. char *satirlar[50];
  6. int satirSayisi = 0;
  7. FILE *dosya = fopen("soy.txt", "r");
  8. do
  9. {
  10. fgets(satir,50,dosya);
  11. satirlar[satirSayisi] = satir;
  12. satirSayisi++;
  13. }while (satir != NULL);
  14. fclose (dosya) == EOF;
  15. }

Решение задачи: «Считывание данных с файла в массив»

textual
Листинг программы
  1. #include <string.h>   // для strcpy(char *,  const * char);
  2. #define    SIZE    30 // кол-во допустимых строк
  3.  
  4. int main()
  5. {
  6.     char satir[50];
  7.     int sayac = 0;
  8.     char satirlar[SIZE][50];
  9.     int satirSayisi = 0;
  10.  
  11.     FILE *dosya = fopen("soy.txt", "r");
  12.     do{
  13.         fgets(satir,50,dosya);
  14.         strcpy(satirlar[satirSayisi],satir);
  15.         satirSayisi++;
  16.     }while (satir != NULL);
  17.     fclose(dosya);
  18. }
  19. /* Для вывода пиши так: printf("%s", satirlar[satirSayisi]); -,т.е. указывай номер строки */

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы с файлами и строками
  2. Объявление переменных: — satir[50] — строка для считывания данных из файла — sayac — счетчик количества считанных строк — satirlar[SIZE][50] — массив для хранения считанных строк — satirSayisi — счетчик количества заполненных строк в массиве
  3. Открытие файла soy.txt для чтения с помощью функции fopen
  4. Чтение данных из файла с помощью цикла do-while и функции fgets — В каждой итерации цикла считывается одна строка из файла и сохраняется в переменной satir — С помощью функции strcpy строка satir сохраняется в соответствующем элементе массива satirlar — После каждой итерации счетчик satirSayisi увеличивается на 1
  5. Закрытие файла с помощью функции fclose
  6. Возможность вывода любой из считанных строк с помощью команды printf и указания номера строки в массиве satirlar

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.143 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы