c - 一种在一个 scanf 中一次获取 int 数组输入的方法?

标签 c

<分区>

我是否可以在一个 scanf 中获得输入,用户只需键入一串数字(如果需要,用一些东西分隔,如\n 或 ' ')。它会自动存储在数组中。同样的方式在字符串中有可能吗? 有人跟我提过。 %d... 三个点表示它等同于 scanf 中的 %s。是真的吗?

我还没有看到任何类似的问题。我认为他们只是在谈论获取字符串数组。我现在正在谈论 int 数组。

最佳答案

我认为您的问题的答案是否定的。 (但我错了见下文)

在 C 中,您确实需要非常明确地定义所有内容。

所以如果你想在一个数组中包含 5 个数字,你可以

scanf("%d %d %d %d %d", array[0], array[1],array[2],array[3],array[4]);

但这很脆弱,好像格式不完全是那么困难。

对于你想要实现的目标,我建议将整行作为一个字符串读取,然后处理该字符串以查看其中有多少数字并将它们放入你的数组中....

我最初的假设是错误的,因为从 C99 开始就有一个名为 vscanf 的函数,它看起来完全可以满足您的需求。

我建议你看看this question which really goes through it for vscanf ,但对我来说,我真的认为即使 vscanf 也可能有点脆弱,最好使用 fgets 逐行读取数据作为字符串从 获取数据>stdin 当您按下回车键时,它将从键盘将所有内容读入字符串,前提是键盘输入不会溢出您指定的最大字符数 - 然后您可以使用 sscanf 或其他函数扫描字符串以获取数字。

关于c - 一种在一个 scanf 中一次获取 int 数组输入的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49970614/

相关文章:

我可以在 C 中编写一个可以返回一种数据类型或另一种数据类型的函数吗?

iOS Objective C 从 NSData 发送和获取 NSString

c - 使用 SLLI 访问循环中的数组元素

c - fopen 用于读取/写入文件夹 C 中的多个文件

IlmImf/cmake_install.cmake :84 (file): file INSTALL cannot find IlmImf. dll 处的 CMake 错误”

具有 C 扩展的 Python 项目 - 结构、导入和测试

C 中的 enum 可以用 const 代替吗?

c - 将动态创建的结构体作为非指针对象返回

c - 查询结构的多维映射的设计,该结构的数据在 C 中的某些源代码文件中隐藏

c++ - msvc 版本中的链接器不匹配。有什么解决方法吗?