命令行arg到int,带C中的atoi

命令行arg到int,带C中的atoi,c,string,int,user-input,C,String,Int,User Input,您好,我已经编写了一个具有以下用途的程序: ./borlc 2 -compress file1.txt file2.txt 第一个参数(2),我需要将其存储在int中,因此我尝试执行以下操作: int t; t = atoi(argv[1]); 然而,我得到了一个分割错误。有没有更好的方法来完成我想做的事情?确保您的主函数定义正确,并检查您得到了多少参数 int main(int argc, char *argv[]) { if(argc < 4) {

您好,我已经编写了一个具有以下用途的程序:

./borlc 2 -compress file1.txt file2.txt
第一个参数(2),我需要将其存储在int中,因此我尝试执行以下操作:

int t;
t = atoi(argv[1]);

然而,我得到了一个分割错误。有没有更好的方法来完成我想做的事情?

确保您的主函数定义正确,并检查您得到了多少参数

int main(int argc, char *argv[])
{
    if(argc < 4)
    {
        printf("Parameter is missing");
        return 0;
    }

    int t;
    t = atoi(argv[1]);
}
intmain(intargc,char*argv[])
{
如果(argc<4)
{
printf(“参数缺失”);
返回0;
}
int t;
t=atoi(argv[1]);
}

Segmentation fault,他在调用
atoi(argv[1])
之前编写了确保
argc>1
。可疑参数未正确传递,
argc==1
且代码正在执行
atoi(NULL)