#include <cstdio>
using namespace std;
int main()
{
int i,a;
printf("%d",printf("PRINT %d\t",scanf("%d %d",&i,&a)));
return 0;
}
此代码提供输出
PRINT 2 8
我想知道它是如何为输入的任何数字提供相同的输出。我是新用户,对不起,如果我错了。谢谢。
答案 0 :(得分:6)
此代码与
相同int main()
{
int i,a;
int p, s;
s = scanf("%d %d",&i,&a);
p = printf("PRINT %d\t",s)
printf("%d", p);
return 0;
}
scanf
返回分配的项目数。在你的情况下2个变量,如果成功。
然后打印字符串&#34; PRINT 2 \ t&#34;。
printf
返回写入的字符数,在这种情况下为8。
然后你打印那个数字,8。这意味着你的程序的所有输出都是&#34; PRINT 2 \ t8&#34;
答案 1 :(得分:3)
scanf返回成功阅读的项目数(在本例中为2
)。
成功时,该函数返回参数的项数 列表已成功填写。
printf返回成功打印的字符数(在这种情况下,内部printf返回8
)。
成功时,将返回写入的字符总数。
如果发生写入错误,则设置错误指示符(ferror)并且a 返回负数。
因此,详细阐述了陈述printf("%d",printf("PRINT %d\t",scanf("%d %d",&i,&a)))
:
您最里面的scanf
会返回2
,因为它会读取2个整数。
然后您的内部printf
将成为printf("PRINT %d\t", 2)
,并会写出 8个字符 PRINT 2\t
,因此会返回8
。
然后您的外printf
将成为printf("%d", 8)
并写8
,使您的合并输出PRINT 2 8
。