【发布时间】:2011-04-23 08:46:15
【问题描述】:
我是 C++ 新手,在谷歌上搜索了一下,我认为 sprintf 可以完成这项工作,但编译时出现错误,无法在 unsigned char 和 char 之间进行转换。我需要一个无符号字符,因为我要打印到图像文件 (0-255 RGB)。
unsigned char*** pixels = new unsigned char**[SIZE];
vector<float> pixelColors;
...
sprintf(pixels[i][j][k], "%.4g", pixelColors.at(k));
(pixelColors 的大小为 3,“k”指的是“for loop”变量)
【问题讨论】:
-
您想将浮点数转换为字符串吗?还是要打印浮点值的二进制表示?
-
我编辑了我的主要帖子。我有一个无符号字符的 3D 动态数组,并且想要存储每个浮点数的字节值。
-
等等,你的意思是你要把图像数据发送到打印机吗?如果是这样,那么您将不得不查找 CUPS(通用 Unix 打印系统)或 windows 等效项。
-
正如其他人所说 - 浮动的范围是多少?是 0.0 到 1.0,还是其他?您将需要将浮点范围缩放到无符号字符范围。
-
@Frank 不,只是一个图像文件。 @Jeff 从 0-255
标签: c++ floating-point unsigned-char