ciao ho un problema (penso stupido ma che non so risolvere..)
leggo da linea comando il nome di un file (nome_file), leggo tutti i file presenti in una directory e li scrivo in file (cur_dir.txt), poi leggo riga per riga il file (cur_dir.txt) e confronto con nome_file:
#include <stdio.h>
#include <stdafx.h>
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>
#include <fstream.h>
main()
{
char nome_file[30];
cout << "digita il nome del file: ";
cin>>nome_file;
/* inserisco tutti i nomi dei file presenti nella directory corrente in un file fittizio cur_dir.txt*/
system("DIR .\\*.* /a:-d /b > cur_dir.txt");
/* apro in lettura il file fittizio e verifico se il file da ricercare è presente tra i file*/
ifstream in("cur_dir.txt");
char riga_file[30];
int ii=0;
while(in>>riga_file)
{
//cout << riga_file << endl;
if (riga_file == nome_file)
{
// ii++;
/* cout << ii << " _" << riga_file << "_ _" << nome_file << "_" << endl;*/
cout << "File Esistente" << endl;
break;
}
}
in.close();
// elimino il file temporaneo
//system("DEL .\\cur_dir.txt");
return 0;
}
il problema e' che l'if non mi riconosce quando il file c'e' e cosi' non mi stampa a video nulla (ho fatto la prova inversa, cioe' l'if sono diversi con un contatore e la scrittura a video sia del contenuto del file cur_dir.txt che la stringa nome_file, adesso e' commentata, e mi mostra proprio che non li riconosce uguali..)
che fare???
grazie e ciao