Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Fseek(f,SEEK_SET,0);




for (int i=0;! feof (f); i++){

Int x;

if (! fread (&x, sizeof (int), 1, f)) break;

printf ("element # %d = %d\n", i, x);

}

}

Задачи:

1. Программа, которая заполняет файл, потом считывает данные с файл и с начало и с конца. Использовать функции.

#include<stdio.h>

#include<stdlib.h>

void fill_file(FILE *,int *);

void print_file(FILE *,int *);

void print_file_end(FILE *,int *);

char name[]="chisla.bin";

void main(){

Int n;

FILE *k;

k=fopen(name,"w+b");

if(!k)

Return;

fill_file(k,&n);

print_file(k,&n);

print_file_end(k,&n);

Fclose(k);

}

void fill_file(FILE *k,int *p){

Int x,i;

printf("Vvedive kol: ");

scanf("%d",p);

for(i=0;i<*p;i++){

scanf("%d",&x);

fwrite(&x,sizeof(int),1,k);

}

}

void print_file(FILE *k,int *p){

puts("\n");

Int x,i;

fseek(k,0*sizeof(int),SEEK_SET);

for(i=0;i<*p;i++){

fread(&x,sizeof(int),1,k);

printf("[%d]=%d\n",i,x);

}

}

void print_file_end(FILE *k,int *p){

puts("\n");

Int x,i;

for(i=1;i<=*p;i++){

fseek(k,-i*sizeof(int),SEEK_END);

fread(&x,sizeof(int),1,k);

printf("%d\n",x);

}

}

2. Программа, которая получает 2 файла в которых записаны числа, причем оба файла отсортирован по возрастанию. Переписать данные в третий файл, так чтобы они были по возрастанию. Не использовать дополнительных файлов, массивов и т.д.

#include<stdio.h>

#include<stdlib.h>

void print_file(FILE *);

char name1[]="int1.bin";

char name2[]="int2.bin";

char name3[]="int3.bin";

void main(){

Int x1,x2;

FILE *k1,*k2,*k3;

k1=fopen(name1,"rb");

if(!k1)

Return;

k2=fopen(name2,"rb");

if(!k2)

Return;

k3=fopen(name3,"w+b");

if(!k3)

Return;

fread(&x1,sizeof(int),1,k1);

fread(&x2,sizeof(int),1,k2);

while(!feof(k1) &&!feof(k2)){

if(x1<x2){

fwrite(&x1,sizeof(int),1,k3);

fread(&x1,sizeof(int),1,k1);

}

else{

fwrite(&x2,sizeof(int),1,k3);

fread(&x2,sizeof(int),1,k2);

}

}

if(feof(k1)){

while(!feof(k2)){

fwrite(&x2,sizeof(int),1,k3);

fread(&x2,sizeof(int),1,k2);

}

}

if(feof(k2)){

while(!feof(k1)){

fwrite(&x2,sizeof(int),1,k3);

fread(&x2,sizeof(int),1,k1);

}

}

Print_file(k1);

Print_file(k2);

Print_file(k3);

Fclose(k1);

Fclose(k2);

Fclose(k3);

}

void print_file(FILE *k){

puts("\n");

Int x;

fseek(k,0*sizeof(int),SEEK_SET);

fread(&x,sizeof(int),1,k);

while(!feof(k)){

printf("%d ",x);

fread(&x,sizeof(int),1,k);

}

}

3*. Программа, которая получает 2 файла в которых записаны числа, причем 1- ый файл отсортирован по возрастанию, а 2-ой по убыванию. Переписать данные в третий файл, так чтобы они были по возрастанию. Не использовать дополнительных файлов, массивов и т.д.

4. Отсортировать существующий бинарный файл, причем дополнительных массивов и файлов не использовать.

#include <stdlib.h>

int getElementAtPosition (int i, FILE *f);

void setFileElements (int pos, int element, FILE * f);

int getFileSize (FILE *f);






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных