从文件中读取64位整数字符串

Tho*_*n79 3 c++ 64-bit parsing integer

我们有一个64位整数作为字符串的文件.我们如何scanf()或以其他方式将此数字字符串解析为C++中的无符号64位整数类型?

我们知道像%lld等的东西,但是很多方法做这个解析似乎打破了不同编译器和stdlibs下的编译.代码应该在gcc和Microsoft C++编译器下编译(当然完全符合标准是一个加号)

KTC*_*KTC 5

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;
Run Code Online (Sandbox Code Playgroud)