如何使用输入打开某个文件夹中的文件夹[C++]

如何使用输入打开某个文件夹中的文件夹[C++],c++,C++,我试图打开一个文件夹,我用它作为数据库,里面应该有更多包含各种文本文件的文件夹。 这里有个问题,我如何将两个字符加在一起,这样我就可以根据输入在我想要的文件夹中创建一个文件夹 void registracija() { system("cls"); char usr_temp; cout << "________________________REGISTRACIJA________________________" << endl; cout << "REG

我试图打开一个文件夹,我用它作为数据库,里面应该有更多包含各种文本文件的文件夹。 这里有个问题,我如何将两个字符加在一起,这样我就可以根据输入在我想要的文件夹中创建一个文件夹

void registracija() {
system("cls");
char usr_temp;
cout << "________________________REGISTRACIJA________________________" << endl;
cout << "REGISTRACIJA: NORINT UZSIREGISTRUOTI, JUMS REIKES SUGALVOTI" << endl;
cout << "REGISTRACIJA: SLAPYVARDI, SLAPTAZODI BEI KLAUSIMA" << endl;
cout << "REGISTRACIJA: KURIS BUS NAUDOJAMAS GRAZINTI PAMIRSTAM SLAPTAZODZIUI!" << endl;
cout << "NORIMAS SLAPYVARDIS: ";
cin >> usr_temp;
const char temp = usr_temp;
char dirname1[] = "Vartotojai/" + usr_temp;
char *dirname = dirname1;
int check = _mkdir(dirname);
if (!check) {
    cout << "TESIAME REGISTRACIJA";
}
else {
    cout << "REGISTRACIJA: TOKS SLAPYVARDIS JAU YRA! REGISTRUOKITES IS NAUJO!";
    system("pause>nul");
}
谢谢您的回答。

使用std::string而不是cstring。CString不能与运算符+连接。CString需要std::strcat。如果要使用CString,还需要重新分配内存。使用std::string要容易得多

改变

char usr_temp;

char dirname1[] = "Vartotojai/" + usr_temp;
char *dirname = dirname1;


拆下带有char_temp的线路。你必须包括字符串。string是字符的容器。您可以轻松地添加新字符,而无需管理内存。

我认为您需要这样做

 string dirname1 = "Vartotojai/" + string(1,usr_temp);
 char *dirname = (char*)dirname1.c_str();
// char *dirname = const_cast<char*>(dirname1.c_str());

当您标记了C++时,使用字符串类型而不是字符数组和字符指针。

使用STD::string代替Ctring。CString不能与运算符+连接。CString需要strcat。另请参阅std::ostringstream,您可以使用它来生成文件名。感谢您的回复,它似乎正常工作,但它只创建了一个包含输入首字母的文件夹,有什么问题吗?usr_tmp是一个字符。您只读取第一个字符。使用字符串表示usr_tmpWell这是合乎逻辑的:D谢谢你,托马斯。谢谢你的回复。它似乎也能正常工作,就像前面给出的解决方案一样,但我面临的问题是,它创建的文件夹中只有第一个字母,我应该使用cycle从chars中创建一个新字符串,还是有其他解决方案;如果check{cout@RoshanMehta:是visual c编译器的一部分
std::string usr_tmp;

std::string dirname1("Vartotojai/");
dirname1 += usr_temp;
const char *dirname = dirname1.c_str();
 string dirname1 = "Vartotojai/" + string(1,usr_temp);
 char *dirname = (char*)dirname1.c_str();
// char *dirname = const_cast<char*>(dirname1.c_str());