gpt4 book ai didi

c - sscanf - 从空字符串中读取

转载 作者:行者123 更新时间:2023-11-30 18:22:58 24 4
gpt4 key购买 nike

当我将空字符串传递给 sscanf 时,它返回零并且不会更改给定变量。

char* ptr = "";
abc = sscanf(ptr, "%s", output);
// abc == 0

你能告诉我解决方法吗?

最佳答案

sscanf等待第一个参数是函数处理的 C 字符串,作为检索数据的源。向此函数传递空字符串无法生成要初始化的变量,因为此函数没有任何内容可以用来初始化它。

另请注意,如果成功,该函数将返回填充的变量数。如果发生匹配失败,该计数可以匹配预期的读数数量或更少,甚至为零。如果在成功读取任何数据之前输入失败,则返回 EOF。

以下代码,使用 MinGW (gcc-core 4.5.0-1) 编译

char str[10];
int ret = sscanf("", "%9s", str);
printf("%d\n", ret);

输出-1 (EOF)

检查 sscanf 是否成功的好方法是检查它的返回值是否确实等于提供的变量数量。在这种情况下,它将是 if (ret == 1)。虽然很多人只是检查是否返回了大于0的值,以确保已读取内容并且没有发生错误。

关于c - sscanf - 从空字符串中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10845904/

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