從命令行拉數字集**如果您對解釋我的推理的背景信息不感興趣,請跳到我的問題結尾的底部。從argv []
我有一組多項式方程我需要閱讀到我的程序來執行多項式如
- 合成師
- 加成
- 的單元測試減法
- 規模
- 乘法
- 根部
所以我需要能夠輸入一個廣泛的數字來測試BRLCAD中使用的函數,雖然我有麻煩提出一個有效的解決方案來讀取數字。我目前的做法:
鑑於命令行:
./unit_test sd 2 3 4 8 1 4 5
- SD - 執行綜合除法
- 2 - 第一聚度
- 3,4,8 - 3×2^+ 4x + 8
- 1度第二聚
寫一個算法來讀取這種格式的一組數字是很麻煩的,而且讓別人很難理解,而且我還沒有實現另外兩個多項式來讀入作爲與之比較的答案(因爲這是一個開源文件,我希望我的工作有一些透明度)。
if(strcmp(argv[1],"sd") == 0){
poly_eqn1.dgr = atoi(argv[2]);
/* start at argv[3], run degree count plus one times */
for(counter = 0; counter < (eqn1.dgr + 1); counter++)
poly_eqn1.cf[counter] = atof(argv[counter+3]);
poly_eqn2.dgr = atoi(argv[4 + poly_eqn1.dgr]);
/* start at end of degree one counter */
for(counter = 0; counter < (dgr2 + 1); counter++)
poly_eqn2.cf[counter] = atof(argv[counter+5+dgr]);
/* grab the answer from end of data */
return test_synthetic(//input proper data...);
}
使用會設置sscanf
是比較有效的給予最大程度我多項式閱讀?在寫了初始方法後,我想到了使用sscanf,但我不確定以這種方式使用它是否值得,而不是從上面寫入兩個多項式讀入:
鑑於最大程度是四爲多項式
./unit_test sd 2,0,0,2,4,5 1,0,0,0,2,3
- 2,0,0,2,4,5 - 等級2,0X^4 + 0X^3 + 2×^ 2 + 4X + 5
我不明白你現在這樣做的方式有什麼問題。 –
@jim balter:這是非常混亂和難以實現,我問是否使用sscanf將是一個更好的選擇切換到。 –
scanf在這裏不會爲你做任何事情。您認爲(如果您閱讀帖子)有 –