Считывание строк из файла и их сортировка - C (СИ)
Формулировка задачи:
дана задача:Описать процедуру sortStrings(S0, S1), считывающую все строки из файла с именем S0 и записывающую эти строки в файл S1. Строки должны быть отсортированы в лексикографическом порядке. Я написала программу...но из исходного файла:
c
a
b
в результате получаю:
ba
c
подскажите в чем ошибка..пожалуйста
#include <stdio.h> #include <memory.h> #include <stdlib.h> #include <string.h> #define SIZE 1000 void sortstring(char *input, char *output){ FILE *fileinput, *fileoutput; char **str = NULL; int n = 0; int i; fileinput = fopen(input, "r"); fileoutput = fopen(output, "w"); while(!feof(fileinput)){ str = (char **)realloc(str,(n+1)*sizeof(char*)); str[n] =(char *)malloc(SIZE); fgets(str[n], SIZE,fileinput); n++; } qsort(str, n,sizeof(*str) ,(int(*)(const void *, const void *)) strcmp); for (i = 0; i < n; i++){ fprintf(fileoutput,"%s", str[i]); // free(str[i]); } fclose(fileinput); fclose(fileoutput); } int main(){ sortstring("s0.txt","s1.txt"); return 0; }
Решение задачи: «Считывание строк из файла и их сортировка»
textual
Листинг программы
if (fgets(str[n], SIZE, fileinput)) { n++; }
Объяснение кода листинга программы
- В условии if проверяется, успешно ли считерирована строка из файла.
- Если считывание прошло успешно, то переменная n увеличивается на единицу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д