微软以其无限的血腥智慧默认禁用了printf中的%n说明符(及其所有变体)。
您可以使用此功能重新启用它; _set_printf_count_output()。
我已经使用了这个 - 过去的某个时候 - 它确实有效。
现在它无法正常工作。平台是Windows 7上的最新SDK。
其他人发现了这个?
答案 0 :(得分:2)
程序:
int _tmain(int argc, _TCHAR* argv[])
{
int count;
_set_printf_count_output(1);
printf( "1234567890123456%n78901234567890\n", &count);
printf("%d\n", count);
return 0;
}
输出:
123456789012345678901234567890
16