此问题与:Get number of characters read by sscanf? 然而,它特别要求如何包装可变参数(C++ 11 variadic模板)以实现该效果。获取通过包装函数使用std :: sscanf函数扫描的字符数。扩展可变参数模板
我想有一个函数:
int my_sscanf(int& ncharswritten, const char* str, const char* fmt, ...)
{
}
返回的指定格式事物的正常数量,但还(如例如参考参数)返回写入的字符数。
正如在上面的链接中提到的,建议的解决方法是知道写入的字符数是使用fmt末尾的%n。问题是如何在现实生活中实现这一点,而不必每次都手动添加。
您需要%N'加上'以某种方式格式字符串。最简单的'std :: string fmt2 = fmt +“%n”; ... sscanf(... fmt2.c_str()...);' –
Thanks Mats,魔鬼详细介绍了如何在可变参数列表末尾添加所需的额外int *参数到sscanf( ),将%n添加到fmt的结尾后。 – rveale