2013-10-07 84 views
0

当用参数15运行我的程序时,atoi返回1.Atoi只返回第一个数字。这是否应该发生?我如何解决它?atoi只返回字符的第一个数字*参数

int _tmain(int argc, char* argv[]) 
{ 
    int a = atoi(argv[1]); 
} 
+1

你是如何确定'atoi'返回1的? –

+0

通过突破该行并查看 – rcj

+1

中的值不起作用。由于'a'是本地的且从不访问,编译器没有理由将结果实际写入'a'。 –

回答

0

应该转换整个NULL结尾的字符串:

#include <iostream> 
#include <stdlib.h> 

int main() { 
    std::cout << atoi("15"); 
} 

结果:

15 
+0

这些工作正常。看起来我的argv很怪异。在使用这个库的计算机之前这是做这件事,但我不记得我是如何解决它的。 – rcj

0

从_tmain更改为主要固定的问题。

+2

如果你使用'_tmain',你应该使用'TCHAR'来代替char和'_ttoi'而不是'atoi' – Joni

相关问题