|
|
|
![]() |
|
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: 21:47.