АЯиП отчеты по лабам (кроме 24) (Отчет 26)

Посмотреть архив целиком

Лабораторная работа 26.

Программирование операций с файлами в С++.



Задача: Дан текстовый файл F. Записать в перевернутом виде строки файла F в файл G. Порядок строк в файле G должен совпадать с порядком исходных строк в файле F.


Текст программы:


// lab26.cpp : Defines the entry point for the console application.

//Дан текстовый файл F. Записать в перевернутом виде строки файла F в файл G.

//Порядок строк в файле G должен совпадать с порядком исходных строк в файле F.


#include "stdafx.h"

#include

#include

#include


FILE *f,*g;

char s[50];

int dl=0;


//ввод исходного файла

void inputfile (FILE *ff,int &dl)

{

int fl,pos=0;

printf ("Vvedite stroki ('.' - konec vvoda):\n");

if ((ff=fopen("E:\\file1.txt", "w+"))!=NULL)

{

strcpy (s,"test");

while (strcmp(s,"")!=0)

{

scanf ("%s", s);

dl++;

if (strstr (s,".")!=NULL)

{

fl=strlen(s);

s[fl-1]='\0';

fputs (s,ff);

fputs ("\n",ff);

strcpy (s,"");

}

else

{

fputs (s,ff);

fputs ("\n",ff);

}

}

}

fclose (ff);


}


//преобразование строки

void turn (char slovo[50], char result[50])

{

int i=0,len=0;

len=strlen (slovo);

for (i=len-1; i>-1; i--)

result[-i+len-1]=slovo[i];

result[len]='\0';

}


//создание нового файла

void makingfile (FILE *gg, char result[50])

{

if ((gg=fopen("E:\\file2.txt", "a+"))!=NULL)

fputs (result,gg);

fclose (gg);

}



int _tmain(int argc, _TCHAR* argv[])

{

int k;

char result[50];

inputfile (f,dl);

f=fopen ("E:\\file1.txt","r");

g=fopen ("E:\\file2.txt","w+");

printf ("\nStariy fail:\n");

for (k=0; k

{

fgets(s,50,f);

printf ("%s",s);

turn (s,result);

makingfile(g,result);

}


printf ("\nNoviy fail:\n");

fgets(s,50,g); //пустой буфер

for (k=0; k

{

fgets(s,50,g);

printf ("%s",s);

}


fclose(f);

fclose (g);

getch();

return 0;

}


Тест:





Схема алгоритма:










Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.