繁体   English   中英

在C中返回printf的值?

[英]return value of printf in c?

int main()
{
        int x = 10, y;
        y = printf("x = %d\n", x);
        printf("y = %d\n", y);
        return 0;
}

output:
x = 10
y = 7

我知道printf在我们打印字符串时会返回字符数。 但是,为什么在打印10时返回7?在打印int时printf的返回值是多少?

可能重复: C语言中printf()函数的返回值

就像您说的那样,“ printf在打印字符串时返回字符数”。

x = 10\\n ”有7个字符。 (即,这些: 'x',' ','=',' ','1','0','\\n' )。

因此,y设置为7。

读取: int printf(const char * format,...);

成功后,将返回写入的字符总数。

对于x = 10在代码中的第一个printf:

printf("x = %d\n", x);

打印七个字符x = 10\\n ,并返回在y收到的7:

    x = 10\n
    1234567 
     ^ ^  ^- new line char \n
     | |--spaces   

记住\\n (换行符)是单个字符,空格是单个字符。

字符串的长度:

"x = 10\n"

(不包括双引号)为7个字符。 那就是存储在y中的东西 空格和“ \\ n”也仅是1个字符。

“ x =%d \\ n”当然有7个字符。 注意,这里有2个“空格”,1个“%”和1个“ d”,请记住“ \\ n”是一个整数。 您可以尝试其他句子。 例如z = printf("x = %d,asd\\n",x); 或某物 像那样。 答案是11。我认为这样的问题可以通过再一个行代码来解决。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM