我正在寫一個程序來訪問一個庫包裝算法功能,自從大學以來我沒有做太多的工作,所以我的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