【发布时间】:2014-03-17 11:24:01
【问题描述】:
我有一个带有 ASCII 字符的 .dat 文件,如下图所示:
它基本上是一系列 16 位数字。我可以在我的数据结构中将它作为 unsigned short 读取,但我不知道如何将我的 unsigned short 保存为与输入相同的格式。这是我当前的代码,虽然值正确,但格式不对。见下图:
有人知道我应该如何将它保存为与输入格式相同的格式吗?这是我的保存功能”
void SavePxlShort(vector<Point3D> &pts, char * fileName)
{
ofstream os(fileName, ios::out);
size_t L = pts.size();
cout << "writing data (pixel as short) with length "<< L << " ......" << endl;
unsigned short pxl;
for (long i = 0; i < L; i++)
{
pxl = Round(pts[i].val());
if (pts[i].val() < USHRT_MAX)
{
os << pxl << endl;
}
else
{
cout << "pixel intensity overflow ushort" << endl;
return;
}
}
os.close();
return;
}
【问题讨论】:
-
ASCII 定义只包含 7 位,那你怎么能有一个 16 位的块并用 ASCII 显示呢?