ТОР 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); Не нашли, что искали? Воспользуйтесь поиском:
|