【问题标题】:How to use(put) sprintf to char pointer? C如何使用(放置)sprintf 到 char 指针? C
【发布时间】:2013-12-28 12:43:08
【问题描述】:

是否可以将 sprintf 输出放置(或复制)到指针?怎么样?

像这样?

double myNumber = 88.123;
char *pointer;

sprintf(pointer, myNumber);

【问题讨论】:

  • 网络搜索将向您展示如何使用 sprintf...
  • 使用%lf打印格式并查看cplusplus.com/reference/cstdio/sprintf
  • @amdixon:不需要l...
  • 你能给我发个链接吗?我没有找到。如果你觉得无聊就去看看这篇论文,不要写无用的建议。
  • @amdixon:它的字符数组,不是指针

标签: c pointers printf


【解决方案1】:

如果你阅读manual for sprintf,你会发现它的论据是:

int sprintf(char *str, const char *format, ...);

str 是一个指针,其中包含您希望保存输出的地址,其余参数与 printf 相同。

在你的情况下,你会想要:

double myNumber = 88.123;
char *pointer = hopefully_something_with_enough_space;

sprintf(pointer, "%f", myNumber);

【讨论】:

    【解决方案2】:

    sprintf 打印到字符缓冲区。您可以使用 malloc 动态分配内存并将指向该内存的指针存储在pointer 中。之后,您可以像使用静态字符数组一样使用 sprintf

    【讨论】:

      【解决方案3】:

      您需要为pointer 分配一些内存。另请阅读sprintf 的手册页。您缺少格式参数

      【讨论】:

        猜你喜欢
        • 2016-12-05
        • 1970-01-01
        • 2021-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-12
        • 2023-02-03
        相关资源
        最近更新 更多