簡體   English   中英

通過 c 中的 cmd 將可執行文件與參數分開

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM