wchar_t* Pfad;
wcin >> Pfad;
wchar_t* file = Pfad + "*.quiz";
不适合我,我该怎么做才能做到这一点?
它说"*.quiz"
是错误的,类似于它必须是数值或类似的东西。
很抱歉,我是c ++的新手......
我的实际问题是,我使用它,但我想用户选择路径
类似cin>>文件
但我不希望用户输入" *。测验";
wchar_t* file = L"C:/Users/Niku/Documents/Visual Studio 2012/Projects/Quiz/Quiz/Fragen_Niko/*.quiz";
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
hFind = FindFirstFile(file, &FindFileData);
if( hFind != INVALID_HANDLE_VALUE ) {
max++;
while ((x = FindNextFile(hFind, &FindFileData)) == TRUE)
max++;
}
如果我使用除了wchar_t之外的任何其他东西*它不起作用..
答案 0 :(得分:4)
它没有按照您期望的方式工作,因为您没有完全理解C ++中的指针和字符串文字。如果你想知道什么是错的,请pick any of these books(可能是初学者)。
如果您想直接解决此问题(请使用快捷方式)请改为使用std::wstring
:
std::wstring Pfad;
std::wcin >> Pfad;
auto file = Pfad + L"*.quiz";
根据Rook的建议,如果必须传递指向C API的指针,则可以使用成员函数std::wstring::c_str
,它将返回const wchar_t*
供您使用。