-5
    wchar_t* Pfad;
    wcin >> Pfad;

wchar_t* file = Pfad + "*.quiz";

不为我工作,我怎样才能使这项工作?它说"*.quiz"是错误的,它必须是一个数值或类似的东西。

好吧,对不起,我是 C++ 新手...

我的实际问题是,我使用它,但我想用户选择路径

像 cin >> 文件

但我不希望用户必须输入“*.quiz”;

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

4

1 回答 1

4

它没有按您期望的方式工作,因为您不完全理解C++ 中的指针和字符串文字。如果您想知道哪里出了问题,请选择这些书籍中的任何一本(可能是初学者)。

如果您想直接解决此问题(走捷径),请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*供你使用。

于 2014-05-20T21:04:54.477 回答