将参数传递给main

use*_*080 1 c program-entry-point

我知道这是相当基本的,但我仍然卡住了.所以我有一个需要接受变量n的函数,所以这是我的主要功能

int main(int argc, char* argv){
  sort(argv[1]);
    }
Run Code Online (Sandbox Code Playgroud)

而我正在调用这样的程序:

    ./sort 4 <text.txt
Run Code Online (Sandbox Code Playgroud)

但是数字4没有被识别或传递给函数.我究竟做错了什么?我知道argv [0]应该保存程序本身的名称,并且每个程序都应该保存参数.

Ric*_*ard 7

你应该尝试打印它们.

#include <stdio.h>

int main(int argc, const char *argv[])
{
    int i = 0;
    for (; i < argc; ++i) {
        printf("argv[%d] = '%s'\n", i, argv[i]);
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

运行该代码./a.out 4 < /somefile给了我:

argv[0] = './a.out'
argv[1] = '4'
Run Code Online (Sandbox Code Playgroud)

最后你必须记住'4'是一个指向字符数组的指针,你可能需要将它解析成一个整数.