Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
ilya0610
1 / 1 / 2
Регистрация: 18.11.2013
Сообщений: 337
1

Запись в файл данных после сортировки

07.04.2014, 22:24. Просмотров 364. Ответов 1
Метки нет (Все метки)

Здравствуйте, есть такая проблема никак не получается записать правильно в файл отсортированные данные
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
int name_tov_cmp(const void* a, const void* b)
{
    str* c = (str*)a;
    str* d = (str*)b;
    return strcmp(c->name_tov, d->name_tov);
}
int country_cmp(const void* a, const void* b)
{
    str* c = (str*)a;
    str* d = (str*)b;
    return strcmp(c->country, d->country);
}
int sort(char *name)
{
    FILE*f; 
    str *a;
    int n, i;
    char number M;
    if ((f = fopen(name, "r+"))== NULL)
    {
        printf("Error %s\n", name);
        return 1;
    }   
    n = filelength(fileno(f)) / sizeof(str);
    a = (str*)malloc(n * sizeof(str));
    while (!feof(f))
    {
        fread(a, sizeof(str), n, f);
    }
    printf("\n\t1.Sort by name_tov\n");
    printf("\n\t2.Sort by country\n");
    printf("\n\nEnter number of sort\t");
    scanf("%s", number);
    switch(number[0])
    {
            case '1' :
            qsort(a, n, sizeof(str), name_tov_cmp); //по названию товара
            break;
            case '2' :
            qsort(a, n, sizeof(str), country_cmp); //по стране
            break;
    }
    fwrite(a, sizeof(str), n, f);
    fclose(f);
    free(a);
    return 0;
 
}
Ошибка заключается вот здесь, хотя сейчас все она делает правильно, но сейчас при записи в файл сохраняется и старые значения, если кто знает, а мне нужно, чтобы первоначальные менялись на отсортированные,как это можно поправить?
C
1
2
3
4
    while (!feof(f))
    {
        fread(a, sizeof(str), n, f);
    }
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2014, 22:24
Ответы с готовыми решениями:

Запись данных в файл в одну строку
Подскажите, пожалуйста, при записывании в файл трех параметров(название книги, автор и год) через...

Запись данных в файл прямого доступа
Столкнулся проблемой при записи данных в файл прямого доступа. Мне нужно ввести определенную...

Удалить запись из таблицы после сортировки
Есть таблица сталей с их характеристиками. Редактирование, удаление и добавление записей происходит...

Вывод данных после сортировки (дублируются значения)
Дали задачу на VBA. Суть - есть список фамилий на одном листе в Excel, на второй лист надо вывести...

Пропадает возможность сортировки в DGV после загрузки данных из DataTable
Здравствуйте! Вывожу в DataGridView отфильтрованные значения из DataTable, но при этом пропадает...

1
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
28666 / 18966 / 7465
Регистрация: 22.10.2011
Сообщений: 33,121
Записей в блоге: 6
08.04.2014, 00:22 2
C
1
fseek(f, 0, SEEK_SET);
перед записью упорядоченных данных в файл, и старые данные будут перезаписаны новыми.
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.04.2014, 00:22

Ссылочный тип данных. Динамическая память. Вывести содержание массива до и после сортировки
Напишите программу заполнения и сортировки по столбцам массива 4*5. Вывести содержание массива до и...

Ошибка открытия файла после сортировки: Удалось открыть файл, восстановив или удалив нечитаемое содержимое
Всем привет! Делаю на листе Excel сортировку через VBA, всё ок, закрываю файл. Открываю снова...

Запись данных в файл, и чтения этих данных
Есть 3 текстовые поля и один RadioButton. Надо записать их значения в текстовый файл(притом каждое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.