簡體   English   中英

在C中將char數組(c字符串)轉換為_int64

[英]converting char array (c string) to _int64 in C

我嘗試了此函數將字符串轉換為_int64,但沒有成功:

_int64 lKey = _atoi64("a1234");

lKey值始終為零,除字符串僅是諸如“ 1234”之類的數字外不起作用

我使用C ++字符串流讀取解決方案,但我想用純C語言編寫應用程序

該功能確實有效。 文檔所述

每個函數返回通過將輸入字符解釋為數字而產生的__int64值。 如果無法將輸入轉換為該類型的值,則_atoi64的返回值為0。

因此,您必須確保傳遞正確的字符串。 否則,返回值將始終為零。 就此函數而言, "a1234"不是正確的字符串,幾乎每個“轉儲”解析函數都將無法解析它。

如果您認為自己的數字為十六進制,並且C99可以,那么您可能需要嘗試使用strtoull()

const unsigned long long value = strtoull(string, NULL, 16);

或使用自動檢測:

const unsigned long long value = strtoull(string, NULL, 0);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM