如何转换字符串的int64_t? [英] How to convert string to int64_t?
本文介绍了如何转换字符串的int64_t?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何计划从参数的argv
转换为的int64_t
? 的atoi()
只适合32位整数。
How to convert program parameter from argv
to int64_t
? atoi()
is suitable only for 32 bit integers.
推荐答案
一个符合C99的尝试。
A C99 conforming attempt.
采用@R。修正
// Note: Typical values of SCNd64 include "lld" and "ld".
#include <inttypes.h>
#include <stdio.h>
int64_t S64(const char *s) {
int64_t i;
char c ;
int scanned = sscanf(s, "%" SCNd64 "%c", &i, &c);
if (scanned == 1) return i;
if (scanned > 1) {
// TBD about extra data found
return i;
}
// TBD failed to scan;
return 0;
}
int main(int argc, char *argv[]) {
if (argc > 1) {
int64_t i = S64(argv[1]);
printf("%" SCNd64 "\n", i);
}
return 0;
}
这篇关于如何转换字符串的int64_t?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文