[英]Why running an executable through cmd does not invoke system() call?
[英]Divide Executable with Parameters through cmd in c not working
我正在嘗試使用批處理文件創建神經網絡。 唯一的問題是批處理不支持浮點數。 因此,我決定在 c 中制作一個可執行文件,您可以在其中傳入 2+ 個參數,例如:cmd 中的“除 5 3”,它會划分參數。 這是我的程序:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[]) {
float num1 = atoi(argv[1]);
float num2 = atoi(argv[2]);
if (argc > 2) {
printf("%f", num1 / num2);
return EXIT_SUCCESS;
}
else {
printf("3 arguments expected\n");
return EXIT_FAILURE;
}
}
當然,這是行不通的,是的,我試着稍微改變一下數字並制作了無數版本的這個程序。 我在網上找不到解決方案。 上次你們幫了我很多,希望你們能再接再厲!
向 output 添加換行符並運行它:
$ ./div
Segmentation fault
$ ./div 1
Segmentation fault
$ ./div 1 3
0.333333
在檢查argc
以查看您有多少 arguments 之前,您正在閱讀argv[1]
和argv[2]
。
零個或一個 arguments 一個或兩個將包含垃圾,當它嘗試從某個隨機位置讀取時,這並不奇怪會導致段錯誤。 (或者也許在argv
的末尾有一個保證的 NULL 。我不記得了,但沒關系,你仍然會遇到段錯誤。)
關於該錯誤消息,我會說“預期為 2 arguments”,而不是 3,因為通常用戶不會計算程序名稱,即使argc
中的數字包括它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.