/* Программа создает бинарный файл f1 из целых чисел 0 и 1. Переписывает
из файла f1 в текстовый файл f2 инвертированные элементы файла f1.*/
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
void create (char *s, int n);
void invert (char *s, char *s1);
int main()
{
char s[10],s1[10];
int n;
printf("Enter kol-vo cifr\n");
scanf("%d",&n);
flushall();
printf("Enter file's name 1\n");
gets(s);
flushall();
printf("Enter file's name 2\n");
gets(s1);
create
(s,n);
invert
(s,s1);
getch();
return 0;
}
void create(char *s, int n)
{
FILE
*f1=fopen(s,"wb");
int a;
printf("Enter %d cifr (1 or 0)\n",n);
for(int
i=0;i<n;i++)
{
scanf("%d",&a);
fwrite(&a,4,1,f1);
}
fclose(f1);
}
void invert(char *s, char *s1)
{
FILE
*f1=fopen(s,"rb");
FILE
*f2=fopen(s1,"w");
int a;
while (fread(&a,4,1,f1))
{
if(a)
fprintf(f2,"%d ",a-1);
else
fprintf(f2,"%d ",a+1);
}
fclose(f1);
fclose(f2);
}
/*Создает бинарный файл, содержащий список пассажиров (фамилия, кол-во
единиц багажа, масса багажа), записывает в текстовый файл
данные о тех, кто не нарушил условия грузоперевозок*/
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
struct pass {
char name[20];
int num,weight;
};
void create(char *fn, int n);
void make(char *fn,char *fm, int mk, int mn);
int main()
{
char s1[20],s2[20];
int mk,mn,n;
printf("Enter file's name 1\n");
gets(s1);
flushall();
printf("Enter file's name 2\n");
gets(s2);
flushall();
printf("Enter n,mk,mn\n");
scanf ("%d%d%d",&n,&mk,&mn);
create(s1,n);
make(s1,s2,mk,mn);
return 0;
}
void create(char *fn, int n)
{
FILE
*f1=fopen(fn,"wb");
pass a;
for(int
i=0;i<n;i++)
{
flushall();
printf("Enter name %d pass\n",i+1);
gets(a.name);
printf("Enter kol-vo predmetov i massu %d pass\n",i+1);
scanf("%d%d",&a.num,&a.weight);
fwrite(&a,sizeof(pass),1,f1);
}
fclose(f1);
}
void make (char *fn, char *fm, int mk, int mn)
{
FILE
*f1=fopen(fn,"rb");
FILE
*f2=fopen(fm,"w");
pass a;
while (fread (&a, sizeof(pass),1,f1))
if(a.num<=mk&&a.weight<=mn)
{
fputs(a.name,f2);
fprintf(f2,"\n");
}
fclose(f1);
fclose(f2);
}
/* Создать 2 бинарных файла, записать в них целые цисла. Составить функцию, которая записывает в 3 текстовый файл числа из
первого, отличные от чисел из второго файла. */
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void create(char *fn, int n);
void sort(char *s1,char *s2,char *s3,int n, int m);
int main()
{ char s1[20]; char
s2[20]; char s3[20]; int
n,m;
flushall();
printf("Enter name's file f1\n");
gets(s1);
flushall();
printf("Enter name's file f2\n");
gets(s2); flushall();
printf("Enter name's file f3\n");
gets(s3);
flushall();
printf("Enter n,m\n");
scanf("%d%d",&n,&m);
create(s1,n);
create(s2,m);
sort(s1,s2,s3,n,m);
getch();
return 0;}
void create(char *fn, int n)
{ FILE
*f1=fopen(fn,"wb");
float a;
printf("Enter file's data\n");
for(int
i=0;i<n;i++)
{ scanf("%f",&a);
fwrite(&a,4,1,f1);}
fclose(f1);}
void sort(char *s1,char *s2,char *s3,int n, int m)
{ float a1,a2;
int fl;
FILE
*f1=fopen(s1,"rb");
FILE
*f2=fopen(s2,"rb");
FILE
*f3=fopen(s3,"w");
float *a,*b;
a=(float*)calloc(n,sizeof(float));
b=(float*)calloc(m,sizeof(float));
int i,j;
fseek(f1,0,0);
for(i=0;i<n;i++)
{ fread(&a1,4,1,f1);
*(a+i)=a1;}
fseek(f2,0,0);
for(i=0;i<m;i++)
{ fread(&a2,4,1,f2);
*(b+i)=a2;}
fl=0;
for(i=0;i<n;i++)
{ fl=0;
for(j=0;j<m;j++)
if(a[i]==b[j])
fl=1;
if (fl==0)
fprintf(f3,"%4.1f ",a[i]);}
fclose(f1); fclose(f2); fclose(f3);}
/*Создать файл f1 из значей функции y=x^3/(x+1)-1, где Х изменяется на отрезке [0;4] с шагом 0.1.
Составить новый файл f2 из значений файла f1 следующим образом: если значение
файла f1 удовлетворяет неравенству 4<y<10, то оно записывается в f2, если
y не удовлетворяет этому неравенству, то в f2 записывается ноль.*/
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
void create(char *s1);
void sort(char *s1, char *s2);
int main()
{
char s1[20], s2[20];
printf("Vvidite imena 2 failov\n");
flushall();
gets(s1);
flushall();
gets(s2);
create(s1);
sort(s1,s2);
getch();
return 0;
}
void create(char *s1)
{
float x,a,b,h,y;
FILE
*f1=fopen(s1,"w");
printf("Vvovim a,b,h\n");
scanf("%f%f%f",&a,&b,&h);
x=a;
while(x<=b)
{
y=x*x*x/(x+1)-1;
fwrite(&y,4,1,f1);
x=x+h;
}
fclose(f1);
}
void sort(char *s1, char *s2)
{
float y,c,d,g;
FILE *f1=fopen(s1,"r");
FILE
*f2=fopen(s2, "w");
printf("Vvodim interval dly sotrivki faila\n");
scanf("%f%f",&c,&d);
g=0;
while(fread(&y,4,1,f1))
{
if (y>c&&y<d)
fprintf(f2,"%f ",y);
else
fprintf(f2,"%f ",g);
}
fclose(f1);
fclose(f2);
}
/*Функция создает файл f1.txt со строкой, из которой выписывает все буквы
в файл f3.txt, а цифры в f2.txt*/
#include "stdafx.h"
#include "stdlib.h"
#include "string.h"
#include "conio.h"
void create(char *s);
void obr(char *s1,char *s2, char *s3);
int main()
{
int i,*n;
char f1,f2,f3,s;
create("f1.txt");
obr("f1.txt","f2.txt","f3.txt");
return 0;
}
void create(char *s)
{
char s1[30];
FILE
*f1=fopen(s,"w");
printf("Input text, number ->f2.txt,bukva ->f3.txt
\n");
flushall();
gets(s1);
fputs(s1,f1);
fclose(f1);
}
void obr(char *s1,char *s2, char *s3)
{
FILE
*f1=fopen(s1,"r");
FILE
*f2=fopen(s2,"w");
FILE
*f3=fopen(s3,"w");
int i=0;char
stemp[30];
fgets(stemp,30,f1);
for (int
j=0;j<30;j++)
{
if (stemp[j]>='1'
&& stemp[j]<='9')
fprintf(f2," %c",stemp[j]);
if ((stemp[j]>='a'
&& stemp[j]<='z') ||
(stemp[j]<='Z'&& stemp[j]>='A'))
fprintf(f3," %c",stemp[j]);
}
fclose(f1);
fclose(f2); fclose(f3);
}
/*Создать файл, включающий структуру, состоящую из фамилии и трех оценок.
Переписать в текстовый файл фамилии студентов, сдавших все на 4 и 5*/
# include <stdafx.h>
# include <stdio.h>
# include<string.h>
# include<conio.h>
struct ved
{
char fam[20];
int mark[3];
};
void funk(char *s1, int n);
void create(char *s1, char *s2, int n);
void main()
{
char s1[20], s2[20];
printf("Enter filename1\n");
gets(s1);
printf("Enter filename2\n");
gets(s2);
funk(s1,4);
create(s1,s2,4);
getch();
}
void funk(char *s1, int n)
{
FILE
*f1=fopen(s1,"wb");
ved a;
for (int i=0; i<n;
i++)
{
printf("familiya %d\n",i+1);
flushall();
gets(a.fam);
printf("marks %d\n",i+1);
for (int j=0; j<3;
j++)
scanf("%d", &a.mark[j]);
fwrite(&a,
sizeof(ved), 1, f1);
}
fclose(f1);
}
void create(char *s1, char *s2, int n)
{
FILE
*f1=fopen(s1,"rb");
FILE
*f2=fopen(s2,"w");
ved a;
int k;
while (fread(&a, sizeof(ved),1,f1))
{
k=0;
for (int j=0; j<3;
j++)
if (a.mark[j]>3)
k++;
if (k==3)
{
fprintf(f2,
"%s\n", a.fam);
printf("%s ", a.fam);
}
}
fclose(f1); fclose(f2);
}
/*Создать файл из n слов, переписать указанные слова такие образом, чтобы
символы в каждом слове был в обратном порядке*/
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "string.h"
#include "stdlib.h"
void create(char *s, int n);
void fun(char*s,char*s1,int n);
void abc(char a[]);
int main()
{ char s[10],s1[10];
int n;
printf("Enter kol-vo slov\n");
scanf("%d",&n);
printf("Enter file's name 1\n");
flushall();
gets(s);
printf("Enter file's name 2\n");
flushall();
gets(s1);
create(s,n);
fun(s,s1,n);
return 0;
}
void create(char *s, int n)
{ FILE
*f1=fopen(s,"w");
char a[20];
printf("Enter slova:\n");
for(int
i=0;i<n;i++)
{
gets(a);
fprintf(f1,"%s\n",a);
flushall();
}
fclose(f1);
}
void fun(char*s,char*s1,int n)
{ FILE *f1=fopen(s,"r");
FILE
*f2=fopen(s1,"w");
char a[20];
char temp;
while(fgets(a,20,f1))
{
abc(a);
fprintf(f2,"%s",a);
}
fclose(f1);
fclose(f2);
}
void abc(char a[])
{ int n;
char temp;
for(int
j=0;j<(strlen(a)/2);j++)
{
temp=a[j];
a[j]=a[strlen(a)-1-j];
a[strlen(a)-1-j]=temp;
}
}