由于某种原因,我的 C 程序拒绝将 argv 的元素转换为整数,我不明白为什么。
int main(int argc, char *argv[])
{
fprintf(stdout, "%s\n", argv[1]);
//Make conversions to int
int bufferquesize = (int)argv[1] - '0';
fprintf(stdout, "%d\n", bufferquesize);
}
这是运行 ./test 50 时的输出:
50
-1076276207
我尝试删除 (int),在 (int) 和 argv[1] 之间同时抛出 * 和 & - 前者给了我 5 但不是 50,但后者给了我类似于上面的输出。删除 - '0' 操作并没有多大帮助。我还尝试制作 char first = argv[1] 并使用 first 进行转换,奇怪的是,无论输入如何,这都会给我一个 17 。
我非常困惑。到底是怎么回事?
尝试使用atoi(argv[1])
(“ascii 到 int”)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)