Тема: як організувати правильний вихід з циклу?
Завдання полягає в тому щоб з одного файлу(в якому є текст якоїсь програми) в інший перекопіювати функцію main.
Як правильно зробити вихід з циклу,де я по суті повинен перевіряти баланс дужок,і якшо кількість лівих дорівнює кількості правих,що означає кінець функціїї мейн,виходити з цього циклу.(функція search)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void Open(FILE**, FILE**);
void Search(FILE*,FILE*, char*);
void Copy(FILE*, FILE*);
int main()
{
system("chcp 1251");
FILE* Read, * Write;
char* p1 = (char*)malloc(151);
Open(&Read, &Write);
Search(Read,Write, p1);
Copy(Read, Write);
fclose(Read);
fclose(Write);
free(p1);
system("pause");
return 0;
}
void Open(FILE** Reading, FILE** Writing)
{
if ((*Reading = fopen("D:\\textlab\\lab07.txt", "r")) == NULL)
{
puts("Файл не вдалось відкрити");
system("pause");
exit(0);
}
*Writing = fopen("D:\\textlab\\main-fun.c", "w");
}
void Search(FILE* Reading,FILE* Writing, char* strings)
{
while (fgets(strings, 150, Reading))
{
if (strstr(strings, " main ") || strstr(strings, " main(") || strstr(strings, " main\n"))
break;
}
fputs(strings, Writing);
}
void Copy(FILE * Reading, FILE * Writing)
{
int L = 0;
int R = 0;
int tmp;
do
{
tmp = fgetc(Reading);
if (tmp == '{')
L += 1;
if (tmp == '}')
R += 1;
fputc(tmp, Writing);
} while (1);
}