我们有一个64位整数作为字符串的文件.我们如何scanf()或以其他方式将此数字字符串解析为C++中的无符号64位整数类型?
我们知道像%lld等的东西,但是很多方法做这个解析似乎打破了不同编译器和stdlibs下的编译.代码应该在gcc和Microsoft C++编译器下编译(当然完全符合标准是一个加号)
GCC很长,C++ 0x的编译器也是如此.MSVC++(尚未),但确实有你可以使用的__int64.
#if (__cplusplus > 199711L) || defined(__GNUG__) typedef unsigned long long uint_64_t; #elif defined(_MSC_VER) || defined(__BORLANDC__) typedef unsigned __int64 uint_64_t; #else #error "Please define uint_64_t" #endif uint_64_t foo; std::fstream fstm( "file.txt" ); fstm >> foo;