Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <locale.h>
- void fillFile(char *, FILE *); // заполнение файла числами типа float
- void parseFiles(FILE *, FILE *); // обработка содержимого файлов
- void catFile(char * filename); // вывод содержимого файла
- int main()
- {
- setlocale(0,"");
- FILE *A,*B; // переменные файлов А и В
- fillFile("A.txt", A); // заполняем файл А
- fillFile("B.txt", B); // заполняем файл В
- parseFiles(A,B); // обработка собдержимого файлов А и В
- catFile("C.txt"); // вывод содержимого файла С в консоль
- return 0;
- }
- void catFile(char *filename)
- {
- FILE *f = fopen(filename, "r"); // открываем файл
- float buf; // временный буфер
- printf("Содержимое файла %s: ", filename);
- while ((fscanf(f, "%f", &buf)) != EOF) // читаем все числа типа float пока не закончится файл
- printf("%.2f ", buf); // и выводим в консоль содержимое буфера
- fclose(f); // закрываем его
- }
- void fillFile(char * filename, FILE * file)
- {
- file = fopen(filename, "w+"); // открываем файл
- printf("Вводите содержимое файла %s\n(через пробел, отделять целую и дробную части через запятую, закончить набор клавишей ENTER):\n", filename);
- do
- {
- float temp; // временный буфер
- scanf("%f", &temp); // вносим число в переменную
- fprintf(file, "%f ", temp); // и записываем в файл
- } while(getchar() != '\n'); // и так продолжать, пока не нажат enter
- fclose(file); // закрываем файл
- }
- void parseFiles(FILE *fA, FILE *fB)
- {
- // открываем файлы
- FILE* C;
- C = fopen("C.txt", "w+"); // этот для записи
- // а эти для чтения
- fA = fopen("A.txt", "r");
- fB = fopen("B.txt", "r");
- float num; // временный буфер
- // считываем числа в буфер пока не дошли до конца файла
- while(fscanf(fA, "%f ", &num) != EOF)
- {
- // если число < 0
- if(num < 0)
- {
- // переходим к следующему
- fscanf(fA, "%f ", &num);
- while(num > 0) // и пока число в буфере больше нуля
- {
- fprintf(C, "%f ", num); // записываем в файл
- fscanf(fA, "%f ", &num); // и переходим к следующему
- }
- }
- }
- // считываем числа в буфер пока не дошли до конца файла
- while(fscanf(fB, "%f ", &num) != EOF)
- {
- // если число < 0
- if(num < 0)
- {
- // переходим к следующему
- fscanf(fB, "%f ", &num);
- while(num > 0) // и пока число в буфере больше нуля
- {
- fprintf(C, "%f ", num); // записываем в файл
- fscanf(fB, "%f ", &num); // и переходим к следующему
- }
- }
- }
- // И наконец закрываем файлы
- fclose(fA);
- fclose(fB);
- fclose(C);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement