【问题标题】:convert float to string [duplicate]将浮点数转换为字符串[重复]
【发布时间】:2011-04-26 17:18:58
【问题描述】:

可能重复:
Convert double to string C++?

我在页面中搜索,但没有找到解决方案。

我有一个从 int 转换为 string 的方法。但现在我需要从浮点/双精度转换为字符串。因为我想在文件中写入一些数据。

谁能帮帮我??

提前致谢。

【问题讨论】:

  • 字符串是指C++字符串还是char *?
  • 我已经用 C 语言做了一些基本的东西,我想像 char incy = (char *) bincy;不过,我可能完全错了。 :)
  • 为什么将数据写入文件需要转换为字符串?
  • fprintf(outFile, "%f\n", floatVar); 怎么样?
  • 我需要在打印/写入变量之前进行转换。感谢您的回答。

标签: c++ string floating-point


【解决方案1】:

http://www.daniweb.com/software-development/cpp/threads/146718

#include <sstream>
std::string Convert (float number){
    std::ostringstream buff;
    buff<<number;
    return buff.str();   
}

【讨论】:

    【解决方案2】:
    【解决方案3】:

    不能使用标准 (C) 函数 sprintf/fprintf 等吗?

    【讨论】:

    • 不,我需要在写入文件之前进行转换。
    • sprintf 允许您“转换”(真正的格式)为字符串(char *)——然后您可以将其写入文件或随心所欲地处理它。
    • 请注意,Windows 直到最近才支持与 linux 相同的 snprintf 命令,并且它们的工作方式也不相同。这导致了代码的可移植性问题。在最新的 Visual Studio 中,Microsoft 的 snprintf 实现符合标准。
    【解决方案4】:

    这可以帮助你:Convert double to string C++?

    【讨论】:

      【解决方案5】:

      您的文件是使用 IOStreams 编写的吗?如果是这样,请这样做:

      stream << number;
      

      如果没有,并且您确实需要一个字符串,您可以为此使用ostringstream。 Boost 的lexical_cast 以易于使用的方式包装了字符串流。

      【讨论】:

        猜你喜欢
        • 2013-10-06
        • 2011-11-25
        • 1970-01-01
        • 2017-05-09
        • 2016-01-30
        • 1970-01-01
        • 1970-01-01
        • 2019-11-21
        • 2012-11-15
        相关资源
        最近更新 更多