當用參數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'。 –