在Windows 7下,_set_printf_count_output()显示为已断开

时间:2011-02-18 20:31:49

标签: c windows

微软以其无限的血腥智慧默认禁用了printf中的%n说明符(及其所有变体)。

您可以使用此功能重新启用它; _set_printf_count_output()。

我已经使用了这个 - 过去的某个时候 - 它确实有效。

现在它无法正常工作。平台是Windows 7上的最新SDK。

其他人发现了这个?

1 个答案:

答案 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