我先描述一下狀況:
[code]
char szBuffer[16]={0};
sprintf(szBuffer,"%s","3590525100");
int nNumber = atoi(szBuffer);
[/code]
原先我預期要得到3590525100這個數字,但是我卻得到2147483647這個數字,原因是因為atoi()回傳值型態為int,正整數部份最大只能計算到2147483647(即0x7FFFFFFF)。
解決方法:改用 sscanf()
[code]
char szBuffer[16]={0};
sprintf(szBuffer,"%s","3590525100");
unsigned int nNumber = 0;
sscanf(Buffer,"%u",&nNumber);
[/code]
然後我就順利得到3590525100這個數字了^^
ref:
JeffHung.Blog
陳鍾誠的網站
沒有留言:
張貼留言