Считывание данных с файла в массив - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д