【问题标题】:How to convert an integer to a string portably?如何可移植地将整数转换为字符串?
【发布时间】:2011-01-14 14:45:35
【问题描述】:

我一直在寻找一种以可移植方式将整数转换为字符串的方法(至少可在 Windows 和 Linux 以及 x86 和 x86_64 之间移植),我认为 itoa(X) 与 atoi(1) 一样是标准的。

但我在维基百科条目中阅读了以下内容:

itoa 函数是标准 C 编程语言的广泛非标准扩展。它不能被移植使用,因为它没有在任何 C 语言标准中定义;然而,编译器通常在非一致性模式下通过头文件提供它,因为它是标准库函数 atoi 的逻辑对应物。

所以我想知道是否有任何方法可以以便携的方式进行。如果我必须编写自己的函数,我需要注意哪些事项?

【问题讨论】:

  • 虽然 itoa 不是官方可移植的,但我怀疑你会遇到它的问题。如果你这样做了,这是一个非常容易编写的函数。
  • 你总是可以实现你自己的:P

标签: c portability itoa


【解决方案1】:

如果您不经常这样做,那么将一些数字写入内存、分析结果并存储编码类型的运行时库例程怎么样?从那时起,您只需打开“编码类型”即可选择要使用的转换例程。

【讨论】:

    【解决方案2】:

    您通常只使用 printf("%d");

    http://en.wikipedia.org/wiki/Printf

    如果您需要在缓冲区中使用 sprintf,您可以使用它,但您多久转换为字符串而不将其写入文件或输出设备?

    【讨论】:

      猜你喜欢
      • 2010-10-01
      • 2014-05-02
      • 2016-08-06
      • 2010-10-13
      • 1970-01-01
      相关资源
      最近更新 更多