当前位置:  开发笔记 > 编程语言 > 正文

带有unsigned long long和sprintf的VisualC++ 6.0

如何解决《带有unsignedlonglong和sprintf的VisualC++6.0》经验,为你挑选了1个好方法。

我想在Visual C++ 6.0(普通C)中sprintf()一个unsigned long long值.

char buf[1000]; //bad coding 
unsigned __int64 l = 12345678; 
char t1[6] = "test1"; 
char t2[6] = "test2"; 
sprintf(buf, "%lli, %s, %s", l, t1, t2);

给出结果

12345678, (null), test1

(test2不打印的手表)

并且l = 123456789012345它提供了一个异常处理

有什么建议?



1> ChrisN..:

unsigned __int64在Visual C++ 6.0中打印值,您应该使用%I64u,而不是%lli(请参阅MSDN 上的此页面).%lli仅在Visual Studio 2005及更高版本中受支持.所以,你的代码应该是:

sprintf(buf, "%I64u, %s, %s", l, t1, t2);

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有