Int I,j;
FILE *inf,*outf;
Outf=fopen(“2.txt”,”w”);
Inf=fopen(“1.txt”,”r”);
i=1;
j=2;
fprintf(outf,”%d%d”,i,j);
fscanf(inf,”%d%d”,&i,&j);
printf(“%d%d”,i,j);
fclose(outf);
fclose(inf);
}
1.txt
34 56
ij
2.txt
1.2
путь c:\tc\
3456
fff_1
#include <GRAPHICS.h>
#include <conio.h>
#include <stdio.h>
main(int argc,char*argv[])
{
int i,j;
FILE *inf,*outf;
if(argc==0){printf(“yk imja bx byx file”);exit(-1);}
outf=fopen(argv[2],”w”);
inf=fopen(argv[1],”r”);
i=1;
j=2;
fprintf(outf,”%d %d”,&i,&j);
fscanf(inf,”%d%d”,&i,&j);
printf(“%d%d”,i,j);
fclose(outf);
fclose(inf);
}
вызов fff_1.exe 1.txt 2.txt
вх. вых.
1.txt 2.txt
34 56 1 2
Имя в панели управления ТС
Options → Arguments
fff_2
#include <GRAPHICS.h> по кол-ву строк
#include <conio.h>
#include <stdio.h>
main(int argc, char *argv[])
{
int i, j, i7;
char a[6], b[6[;
FILE *inf, *outf;
if(argc==0) {printf(“yk imja bx byx file”); exit(-1);}
outf= fopen(argv[2],”w”); outf=fopen (“2.txt”,”n”);
inf=fopen(argv[1],”r”); inf =fopen(“1.txt”,”r”);
for (i7=1; i7 <4; i7++) некорректно
{
fscanf(inf, “%d%d%s%s”,&I,&j,a,b);
fprintf(outf, “%d%d%s%s\n”,I,j,a,b);
}
fclose(outf);
fclose(inf);
}
вызов fff_2.exe 3.txt 5.txt
3.txt 5.txt
34 56 aaa fff
56 78 bbb nnn то же
11 3ccc ddd
#include <GRAPHICS.h> fff_4
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
main(int argc, char *argv[] )
{
int i, j, i7;
char a[6], b[6];
FILE *inf,*outf;
if(argc==0) {printf(“yk imja bx byx file”); exit(-1);}
outf=fopen(argv[2], “w”);
inf=fopen(argv[1], “r”);
while(feof(inf)==0) !! пока не конец файла
{
fscanf(inf, “%d%d%s%s\n”, i, j, a, b); feof(inf)
fprintf(outf,”%d%d%s%s\n”, i, j, a, b);} = 0 не конец
fclose (outf); ≠ 0 конец
fclose (inf);
}
fff_4 3.txt 7.txt
Файлы прямого доступа.
Функции fread и fwrite обрабатывают последовательности байтов. Они удобны при передаче составных данных в двоичном формате.
Функция
fread(указатель, размер, количество, имя указателя на файл)[;];
читает из файла указанное количество данных. Размер каждого данного задан в байтах. Читаемая информация помещается в область памяти, адресуемую указателем. Функция возвращает число фактически считанных данных.
К примеру, введем структуру Dic из файла F:
fread(&Dic, sizeof( Dic), 1, F);
Так как в списке аргументов установлено, что следует читать по одной структуре, то текущее значение функции равно 1. После достижения конца файла функция возвращает 0.
Функция
fwrite(указатель, размер, количество, имя указателя на файл)
пишет данные в файл. Список ее аргументов аналогичен списку аргументов функции fread. Функция возвращает число фактически записанных данных. Например, перешлем на диск структуру DicStr:
fwrite (Dic, sizeof(DicStr), 1, F);
Следующие две функции служат для прямого доступа к байтам (обычно внутри двоичных файлов).
Функция
fseek(имя указателя на файл, смещение, откуда)[;]
перемещает файловый указатель на заданное смещением число байтов, начиная с позиции, установленной аргументом откуда. Смещение — это длинное целое, а откуда — это есть:
SEEK-SET — смещение от начала файла;
SEEK-CUR — смещение от текущей позиции файлового указателя;
SEEK-END — смещение от конца файла.
При успешном выполнении функция возвращает 0. Попытка установить файловый указатель перед началом файла является ошибкой, и тогда fseek возвращает ненулевое значение.
Функция
ftell(имя указателя на файл)[;]
определяет текущую позицию файлового указателя. Она возвращает величину смещения (в байтах) относительно начала файла.