Считывание данных с файла в массив - C (СИ)
Формулировка задачи:
Считываю данные с файла в массив но все индексы массива принимают последнее значение строки. Подскажите пожалуйста как это можно исправить.
int main() { char *satir[50]; int sayac = 0; char *satirlar[50]; int satirSayisi = 0; FILE *dosya = fopen("soy.txt", "r"); do { fgets(satir,50,dosya); satirlar[satirSayisi] = satir; satirSayisi++; }while (satir != NULL); fclose (dosya) == EOF; }
Решение задачи: «Считывание данных с файла в массив»
textual
Листинг программы
#include <string.h> // для strcpy(char *, const * char); #define SIZE 30 // кол-во допустимых строк int main() { char satir[50]; int sayac = 0; char satirlar[SIZE][50]; int satirSayisi = 0; FILE *dosya = fopen("soy.txt", "r"); do{ fgets(satir,50,dosya); strcpy(satirlar[satirSayisi],satir); satirSayisi++; }while (satir != NULL); fclose(dosya); } /* Для вывода пиши так: printf("%s", satirlar[satirSayisi]); -,т.е. указывай номер строки */
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и строками
- Объявление переменных: — satir[50] — строка для считывания данных из файла — sayac — счетчик количества считанных строк — satirlar[SIZE][50] — массив для хранения считанных строк — satirSayisi — счетчик количества заполненных строк в массиве
- Открытие файла
soy.txt
для чтения с помощью функции fopen - Чтение данных из файла с помощью цикла do-while и функции fgets — В каждой итерации цикла считывается одна строка из файла и сохраняется в переменной satir — С помощью функции strcpy строка satir сохраняется в соответствующем элементе массива satirlar — После каждой итерации счетчик satirSayisi увеличивается на 1
- Закрытие файла с помощью функции fclose
- Возможность вывода любой из считанных строк с помощью команды printf и указания номера строки в массиве satirlar
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д