Allora aiutatemi cn questo codice:dato 2 file con nomi scrivere i nomi presenti in entrambi su un 3° file
main.cpp
-----------------------------------------------------------------------------------------------------------------
#include "header.h"
int main(int argc, char *argv[])
{
char []="f1.txt"; // al posto di EFFE1 mi esce questa faccia sorridente ,scusate
char f2[]="f2.txt";
vett v1,v2,v3;
int r1,r2;
int r3=0;
leggiFile(v1,r1,f1);
leggiFile(v2,r2,f2);
doppioni(v1,r1,v3 ,r3);
doppioni(v2,r2,v3 ,r3);
caricadoppioni(v3,r3);
system("PAUSE");
return 0;
}
----------------------------------------------------------------------------------------------------------
header.h
----------------------------------------------------------------------------------------------------------
#ifndef header_h
#define header_h
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
typedef char stringa[100];
typedef stringa vett[100];
void leggiFile(vett,int&,char*);
bool controlla(vett v,int r,int posiz,char* x);
void doppioni(vett,int,vett,int&);
void caricadoppioni(vett v3,int r3);
#endif
---------------------------------------------------------------------------------------------------
body.cpp
------------------------------------------------------------------------------------------------------
#include "header.h"
void leggiFile(vett v,int& r ,char* file){
fstream f;
f.open(file,ios::in);
r=0;
if(!f)
cout<<"Caricamento scorretot"<<endl;
else{
while(!f.eof()){
f>>v[r];
r++;
}
r--;
}
f.close();
}
bool controlla(vett v3,int r,int posiz,char *x){
bool flag=false;
for(int i=posiz+1;i<r && !flag;i++){
if(strcmp(v3,x)==0)
flag=true;
}
return flag;
}
void doppioni(vett v,int r,vett v3,int& r3){
bool flag1;
char *x;
for(int i=0;i<r;i++){
x=v;
flag1=controlla(v,r,i,x);
if(flag1){
strcpy(v3[r3],v);
r3++;
}
}
}
void caricadoppioni(vett v3,int r3){
fstream f;
f.open("f3.txt",ios::out);
for(int i=0;i<r3;i++){
f<<v3<<endl;}
f.close();
}