gpt4 book ai didi

c - scanf() 字符串的返回值

转载 作者:行者123 更新时间:2023-11-30 14:34:49 28 4
gpt4 key购买 nike

这段代码...

void main()
{

char str[5];

long int c=scanf("%s",str);
printf("\n%p %p %p %p", c, &str[0], &str[1], &str[4]);

}

...

给出输出:...

bhjun //thats the input

0x1 0x7ffe98cdf5a3 0x7ffe98cdf5a4 0x7ffe98cdf5a7

...

我可以理解字符串字符的内存地址之间的关系,但是 scanf() 返回的是哪个内存地址,为什么是十六进制,以及为什么它返回字符串的内存地址,同时返回数字和字符常量的输入数量?

最佳答案

scanf()函数返回分配了值的成功转换规范的数量(因此 %*s 不计算在内,但 %s 计算在内),或者返回 EOF。因此,原则上,您可以从显示的 scanf() 调用中获取 EOF、0 或 1 — 实际上,您将获得 EOF 或 1,因为 %s 将接受任何非空白字符。如果转换是数字,您可能很容易得到 0 返回 - 输入是字母或标点符号。

关于c - scanf() 字符串的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58824128/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com