sprintf 用于无符号 _int64

2024-04-02

我有以下代码。 sprintf 中第二个 %d 的输出始终显示为零。我认为我指定了错误的说明符。任何人都可以帮助我编写具有正确值的字符串。这必须在 posix 标准中实现。感谢您的投入

void main() {
    unsigned _int64 dbFileSize = 99;
    unsigned _int64 fileSize = 100;
    char buf[128];
    memset(buf, 0x00, 128);
    sprintf(buf, "\nOD DB File Size = %d bytes \t XML file size = %d bytes", fileSize, dbFileSize);
    printf("The string is %s ", buf);
    }

Output:

The string is
OD DB File Size = 100 bytes      XML file size = 0 bytes 

我不知道 POSIX 对此有何评论,但这由核心 C99 很好地处理了:

#include <stdio.h>
#include <inttypes.h>

int main(void) {
    uint64_t dbFileSize = 99;
    uint64_t fileSize = 100;
    char buf[128];
    memset(buf, 0x00, 128);
    sprintf( buf, "\nOD DB File Size = %" PRIu64 " bytes \t"
                  " XML file size = %" PRIu64 " bytes\n"
                  , fileSize, dbFileSize );
    printf( "The string is %s\n", buf );
}

如果您的编译器不兼容 C99,请获取其他编译器。 (是的,我正在看着你,Visual Studio。)

PS:如果你担心便携性,don't use %lld。那是为了long long,但不能保证long long实际上是一样的_int64(POSIX)或int64_t (C99).

Edit:Mea culpa - 我或多或少无脑地“搜索并替换”了_int64 with int64_t没有真正看看我在做什么。感谢您的评论指出这是uint64_t, not unsigned int64_t。已更正。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sprintf 用于无符号 _int64 的相关文章

随机推荐

  • R 错误:“尝试在 get1index 中选择少于一个元素”

    我是 R 初学者 我正在尝试使用该包ClonEvol 但是 github 网页上的文档非常有限 所以现在我正在使用他们的示例代码并尝试将其适应我的数据 称为ce ce lt data frame cluster c 1 1 1 1 2 2
  • 为什么“this”指针在单步执行代码时会改变其值?

    我正在调试崩溃 我注意到调试器的一个步骤 this指针改变了它的值 经过 3 个步骤 它最终得到了值 0x00000001 应用程序崩溃了 现在 0x00000001 值显然是错误的 但我真的应该期待吗this当我单步执行调试器时值会改变吗
  • Chrome 文件阅读器

    有人可以给我一个使用 FileReader API 在 chrome 中获取文件内容的示例吗 似乎要回归了undefined for me
  • 如何使用 Espresso 检查 Viewpager 项目 ID?

    我有一个 Viewpager 它由相同片段视图的副本组成 您可以在它们之间滑动 我正在编写一个 Espresso 测试并尝试对每个页面的 id 进行断言 但它们显然是不明确的 因为加载了多个页面并且它们都共享相同的 id 我不想将视图寻呼机
  • 有效地在多个维度上查找邻居并根据邻近度计算值的总和

    我的任务是找到中心元素可变距离内所有元素的总价值 这些元素使用 3 个维度 我的数据中的列 进行排列 每个元素在给定 3 个维度的情况下都有一个唯一的位置 并且有一个唯一的 id 我有一个可以完成我想要的工作的版本 但是它非常慢 我正在使用
  • grep 与不包含关键字的后上下文[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我想 grep 日志 并收集某个异常堆栈跟踪 但我只想查看那些在 after context 中不包含某些关键字的异常 我不知道关键字在后上下文中的哪
  • 编译项目时出现25.0.0错误

    我有一个项目到目前为止运行良好 今天突然面临这些问题 Error A problem occurred configuring project app gt Could not resolve all dependencies for co
  • rgl:绘制带有彩色面、顶点和线的立方体

    为了演示 3D 线性变换的效果 x gt A x 我想画一个立方体并在下面显示它的变换A 为此 我需要分别为每个面着色 并显示顶点和勾勒每个面的线条 我不知道如何为脸部使用不同的颜色 以及如何使其更通用 因此我不必在转换下重复所有步骤来获得
  • Flask - ImportError:没有名为 app 的模块

    首先我创建了 init py from flask import Flask app Flask name 然后在同一目录中的单独文件中 run py from app import app app run debug True 当我尝试跑
  • 将 Javadoc 添加到 NetBeans 中的库

    我刚开始使用 NetBeans IDE 当我尝试查看 java API 的文档时 例如 Systemclass 它说 javadoc 没有安装 如何安装文档 首先 您下载 javadoc 其次 转到 工具 gt Java 平台 然后从 Ja
  • 确定递归函数的复杂性(大 O 表示法)

    我明天有计算机科学期中考试 我需要帮助确定这些递归函数的复杂性 我知道如何解决简单的情况 但我仍在努力学习如何解决这些更困难的情况 这些只是我无法解决的一些示例问题 任何帮助将不胜感激 并对我的学习有很大帮助 谢谢 int recursiv
  • 如何以编程方式询问当前应用程序的 URL 方案?

    我的 iOS 应用程序有 50 多个目标 每个目标都有自己的自定义 URL 方案 我需要检测来自 webview 的请求是否与当前运行的应用程序的方案匹配 为了做到这一点 我需要能够从代码中询问当前应用程序的 URL 方案 类似的问题涉及尝
  • MySQL如何获取特定范围内的平均值

    我有以下表格数据 value 1 5 10 5 12 36 我想将这些值映射到 range avg 0 21 1 5 10 5 12 4 21 001 34 0 34 001 64 36 64 0 基本上将每个值映射到范围并计算每个范围内所
  • Android dagger依赖循环

    我有两个具有相同范围的依赖项 彼此需要 我的依赖项是具有不同方法的域服务 每种方法都有不同的业务案例 某些业务案例可能会使用另一个领域的方法 为此 我需要域 1 可用于域 2 反之亦然 但是当我这样做时 我收到依赖循环编译错误 经过谷歌搜索
  • 指针 - 数组和指针之间的区别

    有什么区别a a和第一个元素的地址a 0 相似地p是一个指向用数组地址分配的整数的指针 会pointer 进行指针算术并根据数据类型获取值 进一步的价值是什么 预计 它应该是一个指针吗 include
  • Maya Python 中的 cmds.scriptCtx 到底有什么作用?

    我想知道 cmds scriptCtx 命令到底是做什么的 因为我尝试将其直接从 Autodesk 帮助页面复制并粘贴到我的脚本编辑器中 但没有任何反应 以下是 Autodesk 帮助中的脚本 import maya cmds as cmd
  • C#:获取 XML 文档的所有节点

    有没有一种简单的方法 从 xml 文档中获取所有节点 我需要每个节点 子节点等来检查它们是否具有某些属性 或者我是否必须爬行文档 询问子节点 在 LINQ to XML 中 这非常简单 XDocument doc XDocument Loa
  • (选择)H2 中的Where()

    我有两种软件 都是Java 一种是MySQL 另一种是H2数据库 我的问题是在 MySQL 中我有这个查询 Select from X where 1 2 3 in select 4 5 6 from Y 但在 H2 中给我这个错误 子查询
  • 教科书上的长除法如何是 O(n^2) 算法?

    Premise This 维基百科页面 http en wikipedia org wiki Computational complexity of mathematical operations建议 的计算复杂度 教科书 长除法 http
  • sprintf 用于无符号 _int64

    我有以下代码 sprintf 中第二个 d 的输出始终显示为零 我认为我指定了错误的说明符 任何人都可以帮助我编写具有正确值的字符串 这必须在 posix 标准中实现 感谢您的投入 void main unsigned int64 dbFi