C++如何读取文件中逗号分隔的数据并存入数组中?(utah茶壶数据为例)

前些日子做作业时,碰到读取utah茶壶数据文件的问题。文件中包括:

  1. 茶壶上控制点的坐标总数;
  2. 所有的控制点坐标位置x,y,z,三个值在同一行且由逗号分隔;
  3. 控制点组成的控制面总数;
  4. 每个控制面的16个控制点的位置,相当于指针位置。每行16个值,逗号分割。

数据结构如下图所示,2和4的部分数据太多故没有全部显示出来,大家看到下图应该能理解文件的具体格式。
在这里插入图片描述
在这里插入图片描述

接下来的目的就是读取文件中的数据,把2中每行的坐标和4中每行的数字存到相应的数组中。下面是c++写法。个人对C++不算精通,如果有更好的方法欢迎各位在评论区一起讨论。

#include <fstream>
#include <iostream>
#include <string>

#define teapot_patches_num 32
#define teapot_vertices_num 306
#define control_points_num 16

int teapot_patches[teapot_patches_num][control_points_num];
/* struct vec3 {

    float  x;
    float  y;
    float  z;
    }
 这里我用的是一个含float类型x,y,z三个值的结构体,按照个人需要改成二维数组也可。
 */
vec3 teapot_vertices[teapot_vertices_num];	

void ReadFile()
{
   
	std::string in_file_nam
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值