我的程序正在讨论应该使用多少打印件。 参数示例:打印2。 然后我想在打印后循环遍历值,数字2.然后多次打印。我试过这样:
for(i = 0; i < argv[2]; i++)
{
....
问题是argv是一个char而我是一个int。因此,当我运行这个循环时,argv [2]获取值:123123123或者其他东西,而不仅仅是2.有没有办法解决这个问题,或者将char中的值与int进行比较。提前致谢
答案 0 :(得分:3)
argv [2]是char*
而不是char
。 argv [2]指向一个字符串(空终止字符数组)。将参数传递给程序时,参数就是那种形式。
您必须转换它,您可以使用atoi();
答案 1 :(得分:0)
argv[2]
是char*
,是C语言的字符串,如果要将其更改为int,则必须
转换它。将String转换为int。
这是一个例子:
int atoi(char *str){//Just suit for int
int ans = 0,i=0;
while(str[i]){
ans = ans*10 + (str[i]-'0');
i++;
}
return ans;
}
你可以这样称呼atoi(argv[2]);