C ++ wchar_t *无效

时间:2014-05-20 20:54:04

标签: c++ visual-c++ wchar-t wchar

    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之外的任何其他东西*它不起作用..

1 个答案:

答案 0 :(得分:4)

它没有按照您期望的方式工作,因为您没有完全理解C ++中的指针和字符串文字。如果你想知道什么是错的,请pick any of these books(可能是初学者)。

如果您想直接解决此问题(请使用快捷方式)请改为使用std::wstring

std::wstring Pfad;
std::wcin >> Pfad;
auto file = Pfad + L"*.quiz";

Live demo

根据Rook的建议,如果必须传递指向C API的指针,则可以使用成员函数std::wstring::c_str,它将返回const wchar_t*供您使用。