我遇到了返回值爲atoi()
的問題。atoi(argv [1])的返回值始終是0
我想將命令行參數argv[1]
中的char
轉換成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;
}
我用GCC編譯並運行它像./a.out a b c
其他結果是正確的,但atoi()
結果總是顯示爲
Int version of 1st arg: 0
你能給我一些關於這個論題的建議?
你是否特別給./a.out a b c?或者你給數字如./a.out 10 20 30 –