c++中带有变量的文件路径

Filepath with variable inside c++

本文关键字:文件 路径 变量 c++      更新时间:2023-10-16

我试图在我的文件路径中使用变量。

我已经成功地为文件名称添加了一个,但没有为文件夹名称添加一个。

string utilisateur, mot_de_passe;
int gr;
cout << " Entrer un nom utilisateur:"; cin >> utilisateur;
cout << " Entrer un mot de passe :"; cin >> mot_de_passe;
cout << "Choisir un groupe:"; cin >> gr;
ofstream dossier;
if (gr == 1)
{
    dossier.open("C:/Users/titib/Contacts/Desktop/Projet informatique/groupe/" + utilisateur + ".txt");
    dossier << utilisateur << endl << mot_de_passe << endl << gr << endl;

我想使用变量gr作为文件夹的名称。

dossier.open("C:/Users/titib/Contacts/Desktop/Projet informatique/groupe/**gr**" + utilisateur + ".txt");

这应该可以正常工作:

std::string FilePath = "C:/Users/titib/Contacts/Desktop/Projet informatique/groupe/" + std::to_string(gr)  + "/" + utilisateur + ".txt";
dossier.open(FilePath);

您需要将gr转换为std::string,然后才能将其附加到另一个字符串。在c++ 11之前,您可以使用std::ostringstream,例如:

#include <sstream>
std::ostringstream oss_gr;
oss_gr << gr;
dossier.open("C:/Users/titib/Contacts/Desktop/Projet informatique/groupe/" + oss_gr.str() + "/" + utilisateur + ".txt");

或者,如果您正在使用c++ 11或更高版本,您可以使用std::to_string()代替:

dossier.open("C:/Users/titib/Contacts/Desktop/Projet informatique/groupe/" + std::to_string(gr) + "/" + utilisateur + ".txt");

或者,在任何c++版本中,您可以使用std::ostringstring来格式化整个路径:

std::ostringstream oss_path;
oss_path << "C:/Users/titib/Contacts/Desktop/Projet informatique/groupe/" << gr << "/" << utilisateur << ".txt";
dossier.open(oss_path.str());

好了,我终于成功创建了一个文件。感谢Remy Lebeau。

实际上我改变了一些东西:

  • gr现在是名称组-group是避免转换的字符串

i used filedirectory。这里的代码

std::ostringstream gr;
        gr << "C:/Users/titib/Contacts/Desktop/Projet informatique/" << groupe;
        CreateDirectory(gr.str().c_str(), NULL);
        dossier.open("C:/Users/titib/Contacts/Desktop/Projet informatique/" + groupe + "/" + utilisateur + ".txt");
        dossier << utilisateur << endl << mot_de_passe << endl << groupe << endl;

再次感谢。