Тема: Робота з файлами на С
Завдання таке:
Задано файл з текстом С-програми. Виділити і переписати у новий файл з
іменем main-fun.c функцію main() з цієї програми. Підказка: пошук кінця функції
доцільно виконати через перевірку балансу фігурних дужок {}
Я щось трохи зробила, але десь напартачила , бо виводиться купа букв "М" і тільки оце "const char* find1 = "int main()", * find2 = "int main(int argc, char** argv))"; "
Буду дуже рада допомозі, заздалегідь дякую за кожну відповідь)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAXN 300
#define LENG 60
#define ROWS 100
int main(void) {
system("chcp 1251");
FILE* fp, * fc;
int n = 0, i = 0, count1 = 0, count2 = 0;
const char* fname = "D:\\Study_projects\\program4lab7.cpp";
const char* fmain = "D:\\Study_projects\\main-fun.cpp";
const char* find1 = "int main()", * find2 = "int main(int argc, char** argv))";
char buf[MAXN], string[ROWS][LENG];
fp = fopen(fname, "rt");
fc = fopen(fmain, "wt+");
while (fgets(buf, MAXN, fp) != NULL) {
if ((strstr(buf, find1) != NULL) || (strstr(buf, find2) != NULL)) {
if (buf == "{") {
count1++;
}
if (buf == "}") {
count2++;
}
while (count1 != count2) {
for (int і = 0; buf[і] != '\0'; і++)
string[n][i] = buf[i];
}
fputs(string[n], fc);
n++;
}
}
fclose(fp);
fclose(fc);
fc = fopen(fmain, "rt+");
while (fgets(buf, ROWS, fc) != NULL)
fputs(buf, stdout);
fclose(fc);
return 0;
}
Можливо десь і не догледіла, але ніяк не зрозумію(