Boa tarde,
Tenho um programa que tem que ler doi arquivos. Pegar as palavras do primeiro arquivo e comparar com todas do segundo, caso ache alguma igual ele tem que exibi-la em um novo arquivo txt. O código que fiz vai logo abaixo, porém da erro no fim.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void compara(char *word, char *path){
FILE *fpcmp;
char c, wordcmp[20] = "";
int z = 0;
fpcmp = fopen(path, "r+");
while((c = fgetc(fpcmp)) != EOF){
if(c != ' '){
wordcmp[z] = c;
z++;
}
else{
if(strcmp(word, wordcmp) == 0){
printf("%s\n", word);
fclose(fpcmp);
return;
}
}
}
fclose(fpcmp);
return;
}
void ler(char *path1, char *path){
char word[20] = "", ch;
int x = 0;
FILE *fp;
fp = fopen( path1, "r+");
while((ch = fgetc(fp)) != EOF){
if(ch != ' '){
word[x] = ch;
x++;
}
else{
fclose(fp);
compara(word, path);
fopen(path1, "r+");
for( int y = 0; y < 20; y ++)
word[y] = ' ';
x = 0;
}
}
}
int main(){
FILE *fp, *fpcmp;
char path[20], path1[20];
printf("informe diretorio do arquivo para leitura:");
scanf("%s", path1);
if(!(fp = fopen(path1, "r+"))){
printf("Erro ao abrir o arquivo %s!", path);
return 0;
}
printf("informe diretorio do arquivo das words reservadas:");
scanf("%s", path);
if(!(fpcmp = fopen(path, "r+"))){
printf("Erro ao abrir o arquivo %s!", path);
return 0;
}
fclose(fpcmp);
fclose(fp);
ler(path1, path);
}