C++文件输入输出

这篇博客介绍了如何在C++中进行文件输入输出操作,包括文本文件的读取和写入。示例代码展示了如何使用ofstream进行文件写入,如向'norms.txt'文件中插入内容,并使用ifstream读取文件内容,如从'original.txt'中提取并处理三维点的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常见的文本文件格式输出方法如下

                      char * File2 = "norms.txt";
                      ofstream outfile2(File2);

                               outfile2 << endl; 

                                vector<int>PointNormals;

                               int jj = 0;

while (jj < PointNormals.size())
{
outfile2 << setiosflags(ios::fixed)<<setw(20)<<PointNormals[jj]<< " ";
if (!((jj + 1) % 3))
{
outfile2 << endl;
}


jj++;

}

                              PointNormals.resize(0);

                              outfile2.close();

输入例子如下

      ReadPoints_Resample(readMode _rm){

     m_NumOfPoint = 0;
    ifstream infile(filename,ios_base::in);
if (!infile)
{
return ;
}
m_Points.resize(WNUM);
for (int i = 0; i < WNUM; i++)
{
m_Points[i].resize(HNUM);
}
for (int i = 0; i < WNUM; i++)
{
for (int j = 0; j < HNUM; j++)
{
m_Points[i][j].resize(DNUM);
}
}
ofstream outfile("original.txt");
if (_rm == WITH_VOL_COORD)
{
for (int i = 0; i < WNUM; i++)
{
for (int j = 0; j < HNUM; j++)
{
for (int k = 0; k < DNUM; k++)
{
double t_x, t_y, t_z, t_vol;
infile >> t_vol;
infile >> t_x >> t_y >> t_z;
                                       t_point.x = AIR_AFFINE(0, i, WNUM - 1, minX, maxX);
t_point.y = AIR_AFFINE(0, j, HNUM - 1, minY, maxY);
t_point.z = AIR_AFFINE(0, k, DNUM - 1, minZ, maxZ);
//outfile << t_point.vol << " " << t_point.x << " " << t_point.y << " " << t_point.z << endl;
m_Points[i][j][k] = t_point;
}
}
}
}else if(_rm == WITH_ONLY_VOL){

double max_vol = -1;
for (int i = 0; i < WNUM; i++)
{
for (int j = 0; j < HNUM; j++)
{
for (int k = 0; k < DNUM; k++)
{

NorPoint t_point;
double t_vol;
infile >> t_vol;

t_point.vol = t_vol;
t_point.x = AIR_AFFINE(0, i, WNUM - 1, minX, maxX);
t_point.y = AIR_AFFINE(0, j, HNUM - 1, minY, maxY);
t_point.z = AIR_AFFINE(0, k, DNUM - 1, minZ, maxZ);


//蚂蚁体数据阈值选为-0.2


if (t_vol > 0.3)
{
t_point.vol = 1;
m_NumOfPoint += 1;
outfile << t_point.vol << " " << t_point.x << " " << t_point.y << " " << t_point.z << endl;


}else{
t_point.vol = 0;
}


m_Points[i][j][k] = t_point;


}
}
}


}else{




for (int i = 0; i < WNUM; i++)
{
for (int j = 0; j < HNUM; j++)
{
for (int k = 0; k < DNUM; k++)
{
NorPoint t_point;


t_point.x = AIR_AFFINE(0, i, WNUM - 1, minX, maxX);
t_point.y = AIR_AFFINE(0, j, HNUM - 1, minY, maxY);
t_point.z = AIR_AFFINE(0, k, DNUM - 1, minZ, maxZ);


if (k == -j + DNUM)
{
t_point.vol = 1.0;
m_NumOfPoint += 1;
outfile << t_point.vol << " " << t_point.x << " " << t_point.y << " " << t_point.z << endl;
}else{


t_point.vol = 0.0;
}

m_Points[i][j][k] = t_point;


}
}
}


}


outfile.close();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值