当用参数15运行我的程序时,atoi返回1.Atoi只返回第一个数字。这是否应该发生?我如何解决它?atoi只返回字符的第一个数字*参数
int _tmain(int argc, char* argv[])
{
int a = atoi(argv[1]);
}
当用参数15运行我的程序时,atoi返回1.Atoi只返回第一个数字。这是否应该发生?我如何解决它?atoi只返回字符的第一个数字*参数
int _tmain(int argc, char* argv[])
{
int a = atoi(argv[1]);
}
应该转换整个NULL结尾的字符串:
#include <iostream>
#include <stdlib.h>
int main() {
std::cout << atoi("15");
}
结果:
15
这些工作正常。看起来我的argv很怪异。在使用这个库的计算机之前这是做这件事,但我不记得我是如何解决它的。 – rcj
你是如何确定'atoi'返回1的? –
通过突破该行并查看 – rcj
中的值不起作用。由于'a'是本地的且从不访问,编译器没有理由将结果实际写入'a'。 –