mi servirebbe una mano:
// Si considerino due file di testo contenenti su ciascuna riga una singola stringa (parola).
// Creare un terzo file che contenga tutte le parole che sono contenute nel secondo file ma non nel primo.
// Si considerino due file di testo contenenti su ciascuna riga una singola stringa (parola).
// Creare un terzo file che contenga tutte le parole che sono contenute nel secondo file ma non nel primo.
Codice:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class file{
private:
fstream myFile;
string nomeFile;
public:
file();
file(string nome);
void setNomeFile(string nome);
int contaRighe();
string toString();
bool unisci(string nomeFile2);
bool unisci(file &File2);
};
file::file(){
}
file::file(string nome){
nomeFile = nome;
}
void file::setNomeFile(string nome){
nomeFile = nome;
}
string file::toString(){
myFile.open(nomeFile.c_str(), ios::in);
if(myFile.is_open()){
string stringaOutput;
string riga;
while(!myFile.eof()){
getline(myFile, riga);
stringaOutput += riga+"\n";
}
myFile.close();
return stringaOutput;
}else{
return "\0";
}
}
int file::contaRighe(){
myFile.open(nomeFile.c_str(), ios::in);
int i=0;
if(myFile.is_open()){
string appoggio;
while(!myFile.eof()){
getline(myFile, appoggio);
i++;
}
myFile.close();
}
return i;
}
bool file::unisci(string nomeFile2){
myFile.open(nomeFile.c_str(), ios::out|ios::app);
fstream File2(nomeFile2.c_str(), ios::in);
if(myFile.is_open() && File2.is_open()){
string riga;
while(!File2.eof()){
getline(File2, riga);
myFile<<riga<<endl;
}
myFile.close();
File2.close();
return true;
}else{
return false;
}
}
bool file::unisci(file &File2){
myFile.open(nomeFile.c_str(), ios::out|ios::app);
bool riuscito = false;
if(myFile.is_open()){
string testoAppend = File2.toString();
if(testoAppend != "\0"){
riuscito = true;
myFile<<testoAppend;
}
myFile.close();
return riuscito;
}else{
return riuscito
}
}
void file::distribuzione(string primo, string secondo){
myFile.open(nomeFile.c_str(), ios::in);
fstream Primo(primo.c_str(), ios::out);
fstream Secondo(secondo.c_str(), ios::out);
if(myFile.is_open() && Primo.is_open() && Secondo.is_open()){
string riga;
while(!myFile.eof()){
getline(myFile, riga);
Secondo<<riga<<endl;
getline(myFile, riga);
Primo<<riga<<endl;
}
myFile.close();
Primo.close();
Secondo.close();
}
}
int main(){
file prova1("prova1.txt");
file prova2("prova2.txt");
file prova3("prova3.txt");
file prova4;
prova1.unisci(prova2);
prova2.unisci(prova3);
prova3.unisci(prova4);
string nome1,nome2;
system("pause");
}
Ultima modifica da un moderatore: