im试图打开一个我确实用作数据库的文件夹,并且在内部应该有更多包含各种文本文件的文件夹。 所以这是问题,如何将两个字符加在一起,以便可以从输入中在所需文件夹中创建一个文件夹?
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");
}
}
我得到的错误:
Se cannot convert from 'const char *' to 'char []' ConsoleApplication1
感谢您的回答。
答案 0 :(得分:0)
使用std::string
代替cstring。 cstrings不能与operator+
串联。您需要std::strcat
作为cstring。如果要使用cstring,还需要重新分配内存。使用std::string
更改
char usr_temp;
char dirname1[] = "Vartotojai/" + usr_temp;
char *dirname = dirname1;
到
std::string usr_tmp;
std::string dirname1("Vartotojai/");
dirname1 += usr_temp;
const char *dirname = dirname1.c_str();
使用char_temp删除该行。您必须包括string
。 std::string
是字符的容器。您可以轻松地添加新字符,而无需管理内存。
答案 1 :(得分:0)
我认为您需要这样做。
string dirname1 = "Vartotojai/" + string(1,usr_temp);
char *dirname = (char*)dirname1.c_str();
// char *dirname = const_cast<char*>(dirname1.c_str());
使用C ++标记它后,请使用字符串类型而不是char数组和char指针。