Mattyfog
12-08-2008, 14:50
Sto scrivendo un programma che copia una directory, solo che ho un problema con questa funzione:
void copyallfile()
{
vector<string>::iterator a = listaofile.begin();
vector<string>::iterator b = listadfile.begin();
while(a != listaofile.end())
{
char tfile[999999];
copyfile(*a, *b);
a++; b++;
}
}
i 2 vettori contengono le origini e le destinazioni dei file da copiare. Solo che mi trovo a dover passare *a e *b alla funzione copy file che ho appena creato e che non me le accetta.
Riassumendo come posso passare i puntatori *a e *b alla mia funzione???
L'errore che dev-c++ mi da è:
103 E:\Documents and Settings\Matteo\Documenti\C++\nonno\copydir.h cannot convert `std::basic_string<char, std::char_traits<char>, std::allocator<char> >' to `char*' for argument `1' to `void copyfile(char*, char*)'
che faccio???
ps: ecco la mia funzione copyfile:
void copyfile(char *origine, char *destinazione)
{
char sfile;
//int pos = 0;
ifstream in(origine, ios::in | ios::binary);
if(!in)
{
cout<<"Impossibile aprire il file di origine!!!";
}
ofstream out(destinazione, ios::out | ios::binary);
if(!out)
{
cout<<"Impossibile aprire il file di destinazione!!!";
}
while(!in.eof())
{
//in.seekg(pos);
in.get(sfile);
//out.seekp(ios::end);
out.put(sfile);
//pos++;
}
in.close();
out.close();
}
ciao ciao
void copyallfile()
{
vector<string>::iterator a = listaofile.begin();
vector<string>::iterator b = listadfile.begin();
while(a != listaofile.end())
{
char tfile[999999];
copyfile(*a, *b);
a++; b++;
}
}
i 2 vettori contengono le origini e le destinazioni dei file da copiare. Solo che mi trovo a dover passare *a e *b alla funzione copy file che ho appena creato e che non me le accetta.
Riassumendo come posso passare i puntatori *a e *b alla mia funzione???
L'errore che dev-c++ mi da è:
103 E:\Documents and Settings\Matteo\Documenti\C++\nonno\copydir.h cannot convert `std::basic_string<char, std::char_traits<char>, std::allocator<char> >' to `char*' for argument `1' to `void copyfile(char*, char*)'
che faccio???
ps: ecco la mia funzione copyfile:
void copyfile(char *origine, char *destinazione)
{
char sfile;
//int pos = 0;
ifstream in(origine, ios::in | ios::binary);
if(!in)
{
cout<<"Impossibile aprire il file di origine!!!";
}
ofstream out(destinazione, ios::out | ios::binary);
if(!out)
{
cout<<"Impossibile aprire il file di destinazione!!!";
}
while(!in.eof())
{
//in.seekg(pos);
in.get(sfile);
//out.seekp(ios::end);
out.put(sfile);
//pos++;
}
in.close();
out.close();
}
ciao ciao