63 lines
1.2 KiB
C++
63 lines
1.2 KiB
C++
/*
|
|
Nome: Mario
|
|
Cognome: Montanari
|
|
Classe: 3AIN
|
|
Data: 25/04/2025
|
|
|
|
es06:
|
|
Scrivi una funzione che preso in ingresso il nome di due file
|
|
produca un nuovo file ottenuto dalla intersezione dei due file,
|
|
cioè inserendo solo i numeri in comune presenti nei due file.
|
|
*/
|
|
|
|
#include <iostream>
|
|
|
|
#define SIZE 100+1
|
|
|
|
using namespace std;
|
|
|
|
int main(void) {
|
|
char in1_file[SIZE];
|
|
char in2_file[SIZE];
|
|
|
|
cout << "First input file: ";
|
|
cin >> in1_file;
|
|
|
|
cout << "Second input file: ";
|
|
cin >> in2_file;
|
|
|
|
FILE * in1 = fopen(in1_file, "rb");
|
|
FILE * in2 = fopen(in2_file, "rb");
|
|
|
|
if (in1 != NULL && in2 != NULL) {
|
|
FILE * out = fopen("out.bin", "wb");
|
|
|
|
if (out != NULL) {
|
|
int num1;
|
|
int num2;
|
|
|
|
while (fread(&num1, sizeof(int), 1, in1) == 1) {
|
|
rewind(in2);
|
|
|
|
while (fread(&num2, sizeof(int), 1, in2) == 1) {
|
|
if (num1 == num2) {
|
|
fwrite(&num1, sizeof(int), 1, out);
|
|
cout << num1 << " ";
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
fclose(out);
|
|
} else {
|
|
perror("Error (destination)");
|
|
}
|
|
|
|
fclose(in1);
|
|
fclose(in2);
|
|
} else {
|
|
perror("Error (source)");
|
|
}
|
|
|
|
return 0;
|
|
} |