//ESERCIZIO 4using namespace std;
#include <iostream>
#include <string.h>
#include <fstream>
const int luns=1000;
void inizializza(char nomef[]);
void visualizza(char nomef[]);
void menu(int &scelta);
void punto1(char nomef1[], char nomef2[]);
//void punto2(char nomef1[], char nomef2[]);
//void punto3(char nomef1[], char nomef2[]);
int main(int argc, char** argv)
{
char nomef1[luns], nomef2[luns];
int scelta;
do{
cout<<"Inserisci i nomi per file 1 e file 2"<<endl;
cin>>nomef1>>nomef2;
}while(strcmp(nomef1,"")==0||strcmp(nomef2,"")==0) ;
cout<<"PRIMO FILE"<<endl;
inizializza(nomef1);
cout<<"SECONDO FILE"<<endl;
inizializza(nomef2);
do{
menu(scelta);
switch(scelta)
{
case 1: punto1(nomef1, nomef2);
break;
//case 2: punto2(nomef1, nomef2);
// break;
// 3: punto3(nomef1, nomef2);
// break;
}
}while(scelta!=0);
return 0;
}
void inizializza(char nomef[])
{
ofstream f(nomef);
if(!f.is_open())
cout<<"Impossibile aprire il file"<<endl;
else
{
char line[luns];
do{
cin.getline(line,luns);
f<<line<<endl;
}while(strcmp(line,"fine")!=0);
f.close();
}
}
void visualizza(char nomef[])
{
ifstream f(nomef);
if(!f.is_open())
cout<<"Impossibile aprire il file"<<endl;
else
{
char line[luns];
while(f.getline(line,luns))
cout<<line<<endl;
f.close();
}
}
void menu (int &scelta)
{
cout<<"1. per contare il numero delle righe del primo con la stessa iniziale della riga corrispondente del secondo"<<endl<<"2. per trasferire nel secondo le righe di posto pari"<<endl<<"3 per trasferire in un secondo file le lettere con il case invertito"<<endl;
cin>>scelta;
}
void punto1(char nomef1[], char nomef2[])
{
ifstream f1(nomef1); ifstream f2(nomef2);
if(!f1.is_open()||!f2.is_open())
cout<<"ERRORE"<<endl;
else
{
char c1, c2, line1[luns], line2[luns];
int cont=0;
while(f1.getline(line1,luns)&&f2.getline(line2,lun s))
if(line1[0]==line2[0])
cont++;
cout<<"Il numero delle righe e\' "<<cont<<endl;
f1.close(); f2.close();
}
}