C/Visual C - ¿Cómo comparar dos ficheros tipo .txt?

   
Vista:

¿Cómo comparar dos ficheros tipo .txt?

Publicado por Marco (1 intervención) el 17/05/2016 07:03:00
Hola que tal :) Soy nuevo en el foro y no sé si ya existe tema parecido, si ya existe discúlpenme.
Me podrian ayudar a comparar dos ficheros tipo .txt para ver si son iguales o diferentes?

El problema dice así:
Leer dos archivos de texto y comparar si son iguales, indicar al usuario si lo son o no. (Ejecutar para los dos
casos en que sean iguales o diferentes y capturar pantallas)
Esto es lo que llevo hasta ahora

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int main(int argc, char* argv[])
{
    FILE *archivo=NULL, *archivo2=NULL;
	unsigned char c='\0';
	unsigned char c2='\0';
	int i=0, j=0;
	char arreglo[50];
	char a[50];
 
	archivo = fopen("prueba.txt","r");
    archivo2 = fopen("prueba2.txt","r");
 
	if (archivo == NULL && archivo2 == NULL)
    {
 		printf("\nError de apertura del archivo. \n\n");
 		getchar();
 		exit(0);
    }
 
    while(feof(archivo)==0)
    {
    	arreglo[i]=c;
		printf("%c",arreglo[i]);
    	i++;
    	c=fgetc(archivo);
 
    }
    arreglo[i]='\0';
    printf("\n\n");
  do {
   c = fgetc(archivo);
   c2 = fgetc(archivo2);
}while (c == c2 && c != EOF);
 
if (c == c2){
 
   printf("Son iguales");
 
}else {
 
   printf(" No son iguales");
 
}
 
    fclose(archivo);
 
	getchar();
    return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

¿Cómo comparar dos ficheros tipo .txt?

Publicado por agustin (174 intervenciones) el 17/05/2016 09:40:17
Mira a ver si te vale asi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include<stdio.h>
 
int main(int argc, char* argv[])
 
{
   FILE *archivo1, *archivo2;
	unsigned char c, c2;
 
	archivo1 = fopen("prueba.txt","rb");
   archivo2 = fopen("prueba2.txt","rb");
 
	if (archivo1 == NULL || archivo2 == NULL)
   {
      printf("\nError de apertura de archivos.\n\n");
 		getchar();
   }else{
      do{
    	   c=fgetc(archivo1);
         c2=fgetc(archivo2);
      }while(feof(archivo1)==0 && feof(archivo2)==0 && c == c2);
 
      if (c == c2){
         printf("\nSon iguales");
      }else {
         printf("\nNo son iguales");
      }
   }
   if(archivo1 != NULL)
      fclose(archivo1);
   if(archivo2 != NULL)
      fclose(archivo2);
	getchar();
   return 0;
}
Lo de capturar pantallas no termino de entender lo que te piden.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar