2013-10-07 64 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

相關問題