我有以下片段。我期待swscanf从字符串" .exe $"中删除$ sign;并仅将.exe复制到目的地。但它总是复制" .exe $"
int main()
{
wchar_t name[10];
swscanf(L".exe$", L"%ls$", name);
std::wcout<<wstring(name)<<std::endl;
return 0;
}
答案 0 :(得分:0)
使用%ls
,你告诉它消耗尽可能多的宽字符。之后的$
符号将被忽略。
您想要的是告诉它扫描除$
符号之外的任何宽字符。因此,将s
替换为[^$]
:
swscanf(L".exe$", L"%l[^$]", name);