2016-11-28 3 views
0

J'essaye d'écrire le fichier de sortie HTML. Le fichier est écrit et tout va bien, mais j'aimerais savoir s'il existe un moyen de prendre une chaîne avec son nom de fichier, vérifier si cela existe et si oui alors changer cette chaîne en quelque sorte. Donc, je ne remplacerais jamais le fichier déjà existant.C++ Changer le nom du fichier de sortie s'il existe

string outputFile; 
cin>>outputFile; 
ofstream out; 
string path ="..\\data\\"+ outputFile+ ".html"; 
out.open(path.c_str()); 

Donc, dans ce cas, si outputFile est disons « Jésus », alors je veux faire quelque chose si je courrais ce 3 fois j'aurais quelque chose comme Jesus.html, Jesus2.html, Jesus3.html . Ne doit pas forcément être numéroté comme ça, juste n'importe quel changement à cette chaîne fera l'affaire. Est-ce seulement possible? J'ai essayé ceci en utilisant tmpnam() mais je ne comprends pas vraiment comment il est censé fonctionner et s'il peut même être utilisé.

Merci pour toute aide

Répondre

1

vous pouvez vérifier si le fichier existe avec l'une des méthodes mentionnées ici:

Fastest way to check if a file exist using standard C++/C++11/C?

Le code complet ressemblerait à ceci

inline bool file_exists (const std::string& name) { 
    struct stat buffer; 
    return (stat (name.c_str(), &buffer) == 0); 
} 

while (file_exists(file_name)) 
    file_name += "_1";