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

时间:2018-12-04 21:56:09

标签: c++

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 

感谢您的回答。

2 个答案:

答案 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删除该行。您必须包括stringstd::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指针。