Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 21.10.2018
Сообщений: 36
1

Прямой доступ к файлу

10.04.2019, 22:17. Просмотров 1052. Ответов 1


Есть заполненный бинарный файл с действительными числами. Нужно изменить этот же файл, изменив последовательность этих чисел вот так: A1, An-1, A2, An-2, ... ,A[(n+1)/2]. A - компонент файла, n - всего чисел в файле. Я не могу разобраться как работает функция fseek, и как через неё сделать эту задачу, просто написал заполнение файла числами.
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
FILE *f;
int main()
{
    int i, n;
    float a;
    printf("Enter n:");
    scanf("%d", &n);
    srand(time(0));
    f=fopen("f.dat", "wb");
    for(i=0; i<n; i++)
    {
        a=(double)rand()/10;
        fwrite(&a, sizeof(a), 1, f);
    }
    fclose(f);
    printf("\nFile f:");
    f=fopen("f.dat", "rb");
    for(i=0; i<n; i++)
    {
        fread(&a, sizeof(a), 1, f);
        printf("%.2f", a);
        printf(" ");
    }
    fclose(f);
    // тут должна быть обработка файла через fseek
    printf("\nChanged file f:");
    f=fopen("f.dat", "rb");
    for(i=0; i<n; i++)
    {
        fread(&a, sizeof(a), 1, f);
        printf("%.2f", a);
        printf(" ");
    }
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.04.2019, 22:17
Ответы с готовыми решениями:

Прямой доступ к файлу
Всем привет,нужна небольшая помощь. Нужно сделать с прямым доступом к файлу,чтобы считывалось не...

Прямой доступ к памяти
Подскажите как сделать чтобы функция ChangeId меняла член структуры, я рассматриваю что после...

Прямой доступ к памяти
Как прочитать произвольный адрес оперативной памяти? Заранее спасибо!

Запретить доступ к файлу по прямой ссылке
Добрый день. Вот такая небольшая проблема. Есть сайт abc.html с кнопкой,которая выводит файл...

1
...
1799 / 1264 / 934
Регистрация: 12.02.2013
Сообщений: 2,058
11.04.2019, 09:22 2
Лучший ответ Сообщение было отмечено Шмебулок как решение

Решение

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
49
50
51
52
53
54
55
56
57
58
59
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main() {
    int i, j, n;
    float a;
 
    struct {
        float a, b;
    } pair;
 
    printf("Enter n: ");
    scanf("%d", &n);
    srand(time(0));
 
    FILE* f = fopen("f.dat", "wb");
    for (i = 0; i < n; i++) {
        a = (double)rand() / 10;
        fwrite(&a, sizeof(a), 1, f);
    }
    fclose(f);
 
    printf("\nFile f: ");
    f = fopen("f.dat", "rb");
    for (i = 0; i < n; i++) {
        fread(&a, sizeof(a), 1, f);
        printf("%.2f", a);
        printf(" ");
    }
    fclose(f);
 
    f = fopen("f.dat", "rb+");
    for (i = 0; i < n / 2; ++i) {
        for (j = 2; j < n - (i * 2); ++j) {
            fseek(f, -j * sizeof(float), SEEK_END);
            fread(&pair, sizeof(pair), 1, f);
 
            a = pair.a;
            pair.a = pair.b;
            pair.b = a;
 
            fseek(f, -j * sizeof(float), SEEK_END);
            fwrite(&pair, sizeof(pair), 1, f);
        }
    }
    fclose(f);
 
    printf("\nChanged file f: ");
    f = fopen("f.dat", "rb");
    for (i = 0; i < n; i++) {
        fread(&a, sizeof(a), 1, f);
        printf("%.2f", a);
        printf(" ");
    }
    fclose(f);
 
    return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.04.2019, 09:22

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Как Запретить доступ к файлу по прямой ссылке, апач отключен?
Как Запретить доступ к файлу по прямой ссылке?, так как для работы сайта нужен php7, а на хостинге...

Доступ к файлу
Здрям! Есть сеть. Есть экслевский файл определенной формы (дата, номер заявки, что стряслось и...

Доступ к файлу
Всем доброго времени суток. Вообщем пишу кусочек кода для работы с файлами: public void...

Доступ к файлу в C++
Здравствуйте! Я пишу свою командную строку и столкнулся с проблемой в указании пути к какому-либо...

Доступ к файлу
Доброго времени суток, дорогие форумчане. Подскажите пожалуйста, необходимо разработать небольшую...

Доступ к файлу
Никак не могу понять, почему не получить доступ для перезаписи файла после его чтения. Как его...


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

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

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