Задача по файлам и строкам - C (СИ)
Формулировка задачи:
Даны 2 текстовых файла. В третий файл записать только те строки из 1-го файла, которые имеются во втором файле и в них есть не менее 3-х букв 'а'(на латинице).
---
Вот мой недокод:
Я только начинаю , и еще мало ориентируюсь в ошибках и причинах их возникновения. Так вот, выводит 2 штуки :
1>d:\оаипп\8\8\8.cpp(29) : error C2446: ==: нет преобразования 'int' в 'char *'
1> Для преобразования из целого типа в указатель требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>d:\оаипп\8\8\8.cpp(29) : error C2040: ==: "char [250]" отличается по уровням косвенного обращения от "int"
Объясните пожалуйста , как это исправить ?
#include "stdafx.h" #include <iostream> #include "locale.h" #include "string.h" int _tmain(int argc, _TCHAR* argv[]) { FILE *f1,*f2,*f3; int z; char a; char s1[250],s2[250]; setlocale(LC_ALL,"rus"); f1=fopen("C:\\1.txt","r"); f2=fopen("C:\\2.txt","r"); f3=fopen("C:\\3.txt","w"); if(f1==NULL || f2==NULL || f3==NULL) { printf("Один из файлов не удалось открыть"); system("pause"); return 0; } z=0; while(!feof(f2)) { fgets(s2,250,f2); if(s2 == 'a') z++; //{ // strcpy(kor,str); //} } while(!feof(f1)) fgets(s1,250,f1); if(a>3||s1==s2) fputs(s1,f3); system("pause"); return 0; }
Решение задачи: «Задача по файлам и строкам»
textual
Листинг программы
#include "stdafx.h" #include <iostream> #include "locale.h" #include "string.h" int _tmain(int argc, _TCHAR* argv[]) { FILE *f1,*f2,*f3; int z,i; char s[250],s2[250]; setlocale(LC_ALL,"rus"); f1=fopen("C:\\1.txt","r"); f2=fopen("C:\\2.txt","r"); f3=fopen("C:\\3.txt","w"); if(f1==NULL || f2==NULL || f3==NULL) { printf("Один из файлов не удалось открыть"); system("pause"); return 0; } while(!feof(f1)) fgets(s,250,f1); while(!feof(f2)) fgets(s2,250,f2); if(strcmp(s,s2)==0) { z=0; for(i=0;250;i++) { if(s[i]='a') z++; } } if(z>3) fputs(s,f3); printf("Запись произведена. \n"); fclose(f1); fclose(f2); fclose(f3); system("pause"); return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Определяется входная точка программы
- Объявляются переменные: файловые указатели
f1
,f2
,f3
, целочисленная переменнаяz
,i
и строковые переменныеs
,s2
- Устанавливается русская локаль
- Открываются файлы
f1
,f2
иf3
для чтения и записи соответственно - Проверяется корректность открытия файлов. Если хотя бы один файл не открылся, выводится сообщение об ошибке и программа завершается
- Производится чтение из файла
f1
иf2
до конца файла - Проверяется равенство строк
s
иs2
. Если они равны, то выполняется следующий блок кода - Инициализируется переменная
z
равной 0 - Происходит проход по всем символам строки
s
. Если символ равен 'a', то увеличивается значение переменнойz
- Проверяется условие
z > 3
. Если оно истинно, то строкаs
записывается в файлf3
- Выводится сообщение о записи в файл
- Файлы
f1
,f2
иf3
закрываются - Выполняется пауза для пользователя
- Программа возвращает 0, что означает успешное завершение работы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д