【问题标题】:How to convert float to string using single char pointer? [closed]如何使用单字符指针将浮点数转换为字符串? [关闭]
【发布时间】:2014-07-22 12:18:16
【问题描述】:

我有这样的问题:

char *ptr;
float f1 = 12.34;

现在使用这个char *ptr,我想把这个float值转换成字符串,可以用这个指针“ptr”在printf中显示出来。

的意思: 12.34 ==> “12.34”

我不需要使用任何其他指针或临时变量。我不能使用snprintf

【问题讨论】:

  • c 还是 c++?请下定决心
  • 您应该始终知道指针指向的位置。 ptr 指向哪里?
  • 这是作业吗?为什么不能使用snprintf()
  • @kapilddit 尝试使用 `sprintf'
  • 这个问题是出于好奇,可能是题外话。如果你有足够的资源,那你为什么不使用它呢?就像不使用键盘在屏幕上打字一样?为什么发明键盘?

标签: c++ c pointers floating-point


【解决方案1】:

OP 标记了 C++,所以这里是..

std::stringstream ss;
ss << f1;
std::string s = ss.str();
ptr = s.c_str();

【讨论】:

  • 还有:std::to_string(f1)
  • 问题标记为 c 和 c++,OP 说 我不需要使用任何其他指针或临时变量
  • 大声笑我不敢相信我的回答被接受了!
【解决方案2】:

使用snprintf 函数将float 值转换为字符串。

使用sprintf 函数将float 值转换为字符串。还要使用字段宽度来确保不会溢出目标数组。

【讨论】:

  • OP说他不能用snprintf
  • 我不能使用 snprintf。
  • 出于某种戏剧性的原因,他“不能使用 snprintf”
  • 我猜他正在使用 Windows VC++ 编译器
  • @NeilKirk 我 malloc 并将结果分配给char *ptr。这符合 OP 要求。
猜你喜欢
  • 2011-11-25
  • 2018-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-25
  • 1970-01-01
  • 2018-02-15
相关资源
最近更新 更多