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

标签 c++ parsing 64-bit integer

我们有一个文件,其中有一个 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/

相关文章:

c - 为什么同样的程序在 linux 2.6.32 中比 2.6.18 慢?

c++ - 如何编写 Qt 正则表达式来突出显示以非单词字符开头和结尾的字符串?

c++ - 在 c++ () 或 {} 中委托(delegate)构造函数

Python 正则表达式向后看

java - 正则表达式 - 具有多个句点的文件名

python - BeautifulSoup 在 XML block 内找不到标签

c++ - 无法解释的无法在模板中比较 C++ 中的字符串

c++ - 在 dllmain 中的 DLL_THREAD_ATTACH 期间是否有其他线程挂起

windows-7 - 我应该在我的开发电脑上安装哪个版本的 Windows 7?

c++ - C++如何知道如何转换为特定类型?