c - 如何将可变数量的参数传递给 sscanf?

标签 c variadic-functions

我需要在代码中调用以下函数,该函数可用于从指定的字符串格式中提取整数:

int sscanf(const char *str, const char *format, ...)

我需要能够向函数传递以句点分隔的数字字符串(即 1.20.3.4),因此我的格式字符串将采用 %d.%d.%d.%d 的形式。 。

问题是,我在运行时传递给函数的数字将具有由句点分隔的随机数量的数字。换句话说,一次通话我就可以通过 1.23 ,但在下次通话时我可能会通过 1.23.45.6 。动态生成格式字符串是一项简单的任务,但是我不确定是否可以传入可变数量的剩余参数,这些参数用于存储函数的结果。

有人知道这是否可行或有其他想法吗?

最佳答案

如果您知道整数的数量有上限,那么对于那么多参数总是 sscanf()sscanf() 的返回值将告诉您成功扫描的计数,这意味着您不需要按程序生成格式字符串。

关于c - 如何将可变数量的参数传递给 sscanf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51412451/

相关文章:

c - C语言找零需要多少分钱

java - 初始化 Map 的类型安全可变参数方法

c++ - 具有可变参数模板和 va_args 的 function_traits

C 随机数生成器有时生成相同的数字

c - 向后打印双向链表段错误

c - 如何检查用户是否在键盘上输入了 "enter"? (C)

c - 无论我输入哪一年,我的程序总是告诉我这是闰年,即使它不是闰年

具有最大参数数量的 Ruby 方法

Java:泛型方法重载歧义

c - 可选功能参数 C