|
|
|
|
ЛАБОРАТОРНАЯ №5 ВАРИАНТ 4
| Задача: Заданы имена входного текстового файла (существует на диске) и выходного файла
(создается программой). Скопировать строки из входного файла в выходной в
обратном порядке строк. Имена файлов задаются в виде аргументов командной
строки. |
| >>Скачать<< |
| Решение: |
//---------------------------------------------------------------------------
#include < stdio.h>
#include < stdlib.h>
#define MAXN 1000
int pos[MAXN];
//---------------------------------------------------------------------------
void main(int argc, char* argv[])
{
if(argc != 3)
{
printf("ENTER FILE NAMES FIRST!!!\n");
return;
}
FILE *input = fopen(argv[1],"rt");
FILE *output = fopen(argv[2],"wt");
if(!input || !output) printf("ERROR FILE NOT OPENED!!!\n");
else
{
//ИНДЕКСИРОВАНИЕ ФАЙЛА
char str[256]; int ns = 0;
for(ns = 0; ns < MAXN; ns ++)
{
pos[ns] = ftell(input);
if(fgets(str,256,input) == NULL) break;
}
//ЗАПИСЬ НОВОГО ФАЙЛА
for(int i = ns-1; i >= 0; i--)
{
fseek(input, pos[i], SEEK_SET);
fgets(str,256,input);
fputs(str,output);
}
fclose(input); //Закрытие файлов
fclose(output);
}
}
//---------------------------------------------------------------------------
|
| |
Используются технологии uCoz
|