我正在写一个程序来访问一个库包装算法功能,自从大学以来我没有做太多的工作,所以我的C有点生疏。我打电话的功能需要我传入3个不同的整数数组。我会从命令行调用它。我应该使用argv吗?还是STDIN?输入数组每个可能有50到100个元素。无论哪种方式,我想我将不得不写一些东西来解析字符串并将它们放入数组中,有没有简单的方法来做到这一点?提供整数数组作为输入从命令行
1
A
回答
4
对于大数组,我宁愿使用标准输入,因为通常操作系统限制您可以拥有多少个参数。
您还需要某种输入格式。假设第一个数字n
是第一个数组中的元素数量,后面是元素值,依此类推。然后我会这样做:
#include <stdlib.h>
#include <stdio.h>
int main()
{
// you need to implement read_number yourself
int n = read_number(stdin);
// allocate array
int *array = (int*) malloc(n*sizeof(int));
// read n numbers into array
for (int i=0; i < n; ++i)
array[i] = read_number(stdin);
// and so on...
}
你会得到一般想法。你要么自己实施read_number
,要么在网上找到关于如何做的例子。您需要以某种方式辨别个人数字,例如通过解析每个数字直到下一个空格字符。然后你可以用空格字符分隔标准输入的每个数字。
例如,您可以在下面使用@ypnos建议的scanf解决方案。
3
对于这个数量的元素,你应该使用stdin。无论如何,没有人会用手输入它们,并且./program < file
就像它一样容易。
解析和scanf没什么大不了的。只需定义你的输入应该包含构成数组的所有数字之前的元素数。然后你可以scanf("%d", &elemcount)
,然后循环elemcount,再次使用scanf
。 它的美妙之处在于,scanf将处理所有的空格,换行符等用户可能放入元素数量和其他数字之间。
相关问题
- 1. 命令行输入作为参数
- 2. 从一个数组提供的命令行参数
- 3. 传递整数数组作为命令行参数PowerShell脚本
- 4. Terraform:从命令行提供列表输入值?
- 5. 如何从命令行提供stdin输入?
- 6. 如何为命令行提供两个不同的输入?
- 7. 命令行输入(参数)
- 8. python:从命令行输入函数
- 9. 提供命令行参数给jboss standalone.sh
- 10. 从java提供命令行提示符
- 11. C编程从命令行输入字符串读取整数
- 12. 检查命令行输入是否为有效整数(C)
- 13. 如何导入另一个作为命令行参数提供的python文件?
- 14. 为文件中的函数提供命令行参数
- 15. C将字符命令行参数转换为整数数组
- 16. 将命令行输入转换为数组
- 17. 将命令行输入字符串解析为char数组
- 18. 解析输入和输出文件名作为参数从命令行
- 19. 从symfony函数作为命令行运行命令
- 20. 解析作为参数从命令行
- 21. 从bash脚本提供命令行
- 22. 为AngularJS提供的输入指令
- 23. 使用输入参数从命令行运行Python函数
- 24. 无法通过在命令窗口中执行的c#提供输入命令
- 25. Python - 以字典(散列输入)作为命令行参数
- 26. 输入目录作为命令行参数在c
- 27. 自动将输入提供给Linux命令行
- 28. 从命令行输入参数为十六进制
- 29. 提供数据帧作为多元函数的输入
- 30. Linux如何通过日期命令的输出作为python程序的输入作为命令行参数
我相信这是参数的长度,而不是有限参数的数量。 – GWW 2011-05-16 18:16:58
两者都有限制。 – ypnos 2011-05-16 18:17:36