I am trying to use a variable in my file path.
I have succeeded in adding one for the name of the files, but not for the folder name.
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;
I would like to use the variable gr
as the name of the folder.
dossier.open("C:/Users/titib/Contacts/Desktop/Projet informatique/groupe/**gr**" + utilisateur + ".txt");
答案 0 :(得分:2)
This should work just fine:
std::string FilePath = "C:/Users/titib/Contacts/Desktop/Projet informatique/groupe/" + std::to_string(gr) + "/" + utilisateur + ".txt";
dossier.open(FilePath);
答案 1 :(得分:1)
您需要将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());
答案 2 :(得分:0)
好的,我终于成功创建了一个文件。 感谢Remy Lebeau。
实际上我改变了一些事情:
我用过的目录。 这里是代码
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;
再次感谢。