我遇到了关于返回值的问题atoi().
我想将charin命令行参数argv[1]转换为int类型并将其打印出来.
这是我的代码.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i;
//print the char in *argv[]
for(i = 0; i < argc; i++)
{
fprintf(stdout, "Arg %d: %s\n", i, argv[i]);
}
if (argc > 1)
{
i = atoi(argv[1]); //convert char to int
fprintf(stdout, "Int version of 1st arg: %d\n", i);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我用gcc编译它并运行它 ./a.out a b c
其他结果是正确的,但atoi()结果始终显示为
Int version of 1st arg: 0
Run Code Online (Sandbox Code Playgroud)
你能就这个话题给我一些建议吗?
我的建议是,如果要将字符串转换为a,请将int实际转换为a的字符串作为参数提供int.你的论点是:
./a.out a b c
Run Code Online (Sandbox Code Playgroud)
所以没有注意.你有什么期望?您认为a转换为什么int是什么?