4 / 1 / 2
Регистрация: 04.12.2010
Сообщений: 65
1

Вопрос: заполнение нулями пропусков в файле

14.12.2010, 23:26. Показов 2566. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Из задания:
Структура файла: в первых двух байтах размещается значение типа int, определяющее количество сделанных в файл записей; далее без пропусков размещаются записи. Запись может осуществляться в любую позицию, причем если между вводимой записью и последней (или началом файла) имеются пропуски, они заполняются нулями.
Вопрос: как реализовать заполнение нулями пропусков между позициями?

первое, что пришло в голову
C
1
fwrite (0,sizeof(any_structure),n,file);
не работает - падает с ошибкой Buffer!=NULL..
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.12.2010, 23:26
Ответы с готовыми решениями:

Заполнение пропусков нулями в файле
Есть текстовый файл. Данные в нем записаны так: 10 23 1 45 3 46 2 10 7 11...

В текстовом файле заменить все группы пропусков, больше 1 на 1 пропуск
Создать файл с текстом, найти и заменить все группы пропусков, больше 1 на 1 пропуск Добавлено...

Заполнение массива нулями
Здравствуйте, задача такая: в двумерном массиве заполнить нулями те столбцы и те строки, которые...

Заполнение массива нулями
#include "stdafx.h" #define n 8 int main(void) {int a; int i,j; for(i=0;i<n;i++) ...

2
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
15.12.2010, 04:48 2
C
1
2
3
    char zeroes[100] = "";
 
    fwrite(zeroes, 1, n, file);
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12454 / 7479 / 1752
Регистрация: 25.07.2009
Сообщений: 13,755
15.12.2010, 07:10 3
chaosfall,
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
#include <stdio.h>
#include <stdlib.h>
 
int main(void){
    FILE * f;
    int val = -1;
    
    if ( ( f = fopen("zero.bin", "wb") ) == NULL ){
        perror("fopen");
        exit(1);
    }
    
    if ( fseek(f, 0x10, SEEK_SET) ){
        perror("fseek");
        exit(1);
    }
    
    if ( fwrite(&val, sizeof(int), 1, f) != 1 ){
        perror("fwrite");
        exit(1);
    }
    
    if ( fclose(f) ){
        perror("fclose");
        exit(1);
    }
    
    exit(0);
}
создаёт файл, пропускает 16 байт (заполняя их нулями), пишет в файл значение -1 ( 0xffffffff ). Результат можно с помощью hexdump например посмотреть.
Код
andrew@andrew-home ~
$ cd cpp/files/

andrew@andrew-home ~/cpp/files
$ gcc -o zero zero.c

andrew@andrew-home ~/cpp/files
$ ./zero

andrew@andrew-home ~/cpp/files
$ hexdump zero.bin
0000000 0000 0000 0000 0000 0000 0000 0000 0000
0000010 ffff ffff
0000014

andrew@andrew-home ~/cpp/files
$
1
15.12.2010, 07:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.12.2010, 07:10
Помогаю со студенческими работами здесь

Заполнение массива нулями и единицами
Задача: заполнить массив нулями и единицами. Y-строка B-номер символа в строке Y=2^N Я написал...

Заполнение последней строки StringGrid нулями.
Дана таблица StringGrid (Delphi). Количество строк неизвестно. Как заполнить последнюю строку...

Заполнение правой части StringGrid-а нулями
Для элемента stringgrid заполнить правую часть нулями, причем длина строки такой последовательности...

Конструктор копирования матриц, и заполнение лишнего нулями
Здравствуйте. Нужно создать конструктор, который копировал бы одну матрицу в другую. При нехватке...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru