我们有一个文件,其中有一个 64 位整数作为字符串。我们如何 scanf() 或以其他方式将此数字字符串解析为 C++ 中的无符号 64 位整数类型?
我们知道类似 %lld 等的事情,但是很多执行此解析的方法似乎会破坏不同编译器和标准库下的编译。代码应该在 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;
关于c++ - 从文件中读取 64 位整数字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/252962/