printf 在行尾返回行长度

-1 c++ printf

每次打印 printf 语句时,行的长度都被添加到末尾。例如:

cout << printf("%s", "foo") << endl;
cout << printf("%s", "foobar") << endl;
Run Code Online (Sandbox Code Playgroud)

在我的控制台中显示:

foo3
foobar6
Run Code Online (Sandbox Code Playgroud)

一个有趣的错误,有人知道它是什么吗?我使用 MinGW g++ 作为我的编译器。

Som*_*ude 7

该声明

cout << printf("%s", "foo") << endl;
Run Code Online (Sandbox Code Playgroud)

相当于

int res = printf("%s", "foo");
cout << res << endl;
Run Code Online (Sandbox Code Playgroud)

printf函数打印字符串,并返回它打印的字符数。然后cout << ...打印该整数值和换行符。