Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将字符数转换为int c_C_Casting - Fatal编程技术网

将字符数转换为int c

将字符数转换为int c,c,casting,C,Casting,所以基本上我的问题是,如果我键入/a.out 1 我想将这个1转换为int或long,问题是如果我将其转换为long,它会将数字转换为随机数,如果我将其转换为int,可能会收到警告和错误 节目: #include <stdio.h> int main(int argc, char* argv[]) { int j = (int) argv[1]; printf("* j = %d\n",j); return 0; } #包括 int m

所以基本上我的问题是,如果我键入
/a.out 1
我想将这个1转换为intlong,问题是如果我将其转换为long,它会将数字转换为随机数,如果我将其转换为int,可能会收到警告和错误

节目:

#include <stdio.h>

int main(int argc, char* argv[]) {
    int j = (int) argv[1];
    printf("* j = %d\n",j);
    return 0;
}
#包括
int main(int argc,char*argv[]){
int j=(int)argv[1];
printf(“*j=%d\n”,j);
返回0;
}
尝试将其更改为:

int j = atoi(argv[1]);
您可能还需要在顶部添加以下内容:

#include <stdlib.h>

此外,在对其应用任何操作之前,您必须检查
argv[1]
是否存在。我知道它存在问题在于我是如何做到这一点的,我认为这并不能回答我的问题您正在将argv[1]强制转换为int。它不是int。它是指向char的指针。请参见@phuclv,请参见编辑
char* endPtr;
long j = strtol(argv[1], &endPtr, 10);
printf("j = %ld\n", j);