我有以下代码片段。我希望 swscanf 从字符串“.exe$”中删除 $ 符号,并仅将 .exe 复制到目标位置。但它总是复制“.exe$”
int main()
{
wchar_t name[10];
swscanf(L".exe$", L"%ls$", name);
std::wcout<<wstring(name)<<std::endl;
return 0;
}
最佳答案
使用 %ls
,你告诉它尽可能多地使用宽字符。之后的 $
符号将被忽略。
您想要的是告诉它扫描除 $
符号之外的任何宽字符。所以用[^$]
替换s
:
swscanf(L".exe$", L"%l[^$]", name);
关于c++ - "swscanf"直到 $ 符号才解析字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50053006/