|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
[C++]Errore compilazione
Ciao,
è da un bel po' che sono a digiuno di programmazione ma ho bisogno di crearmi un programma: ho sovuto ripristinare con recuva i dati da un hard disk e adesso ho una cartella contenente migliaia di file copiati al suo interno con parecchie (diciamo dalle 10 alle 20) copie di ognuno chiamate in questo: a a[1] a[2] Io ho bisogno di creare un programma che elimini le copie in questo modo: 1 cerchi quella che occupa di + e la tenga 2 se occupano tutte uguali tenga la prima e cancelli le altre Tempo fa avevo fatto un programma che trovava i file presenti in una directory e nelle sue sottodirectory e ho provato a scrivere questo: Codice:
#include <iostream>
/*#include "copymdir.h"
#include "copymyfile.h"*/
#include <windows.h>
#include <stdio.h>
#include <vector>
#include <string>
#include <direct.h>
#include <fstream>
using namespace std;
vector<string> listaofile;
int main()
{
char percorso_cartella;
cout << "Programma avviato" << endl;
cout << "Premere inserire la cartella nella quale eliminare i \nfile doppi:";
cin >> percorso_cartella;
//ottengo l'elenco dei file nella cartella;
search(percorso_cartella);
return 0;
}
void search(char *p)
{
WIN32_FIND_DATA fd;
char tlist[MAX_PATH];
char pf[MAX_PATH];
strcpy(pf, p);
strcat(pf, "\\*.*");
HANDLE h = FindFirstFile(pf, &fd);
if (h != INVALID_HANDLE_VALUE)
{
do
{
if( strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, ".."))
{
if(fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
//printf ("[%s]\n", fd.cFileName);
//per continuare la ricerca:
char pf[MAX_PATH];
strcpy(pf, p);
strcat(pf, "\\");
strcat(pf, fd.cFileName);
search(pf);
}
else
{
//printf ("\t%s\n", fd.cFileName);
//lista origine file
strcpy(tlist, p);
strcat(tlist, "\\");
strcat(tlist, fd.cFileName);
listaofile.push_back(tlist);
}
}
} while (FindNextFile(h, &fd));
FindClose(h);
}
else
printf("Errore %d\n", GetLastError ());
}
error: no matching function for call to `search(char&)' |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
la funzioni si aspetta una stringa in stile C(char*) e tu le passi un carattere(char).. ciao
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
quindi cosa devo fare per risolvere?
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Dichiaralo string e poi alla funzione passa oggetto.c_str().
Comunque, dal momento che usi C++, ammazza tutti quei strcpy(), strcat() e strcmp(), usa le stringhe del C++.
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:55.




















