如何在 c++ 中从文件中读取坐标
How to read coordinates from file in c++
我有一个包含机器人坐标的文件,其中包含机器人的X,Y和旋转度。
0.2 0.3 150
1.7 3.2 -30
.....
8.7 5.2 -120
我还有一个文件,其中包含来自机器人传感器的不同读数,看起来像
1.5 1.4 1.0. 1.5
4.5 3.4 8.3. 1.1
....
3.5 7.3 1.2. 12.5
首先,我读取机器人的坐标,然后读取其传感器值并进行一些计算。为机器人姿势创建一个类来保留变量有什么意义吗?
double x,y; int degrees;
因为只制作一个双精度数组[linesInFile][3]更容易,它将所有值保留为双精度类型,以创建位置类和创建位置对象数组。如果我不知道文件中有多少个坐标并且直到我读取整个文件才知道数组的大小,那么创建该数组的最佳方法是什么?可以添加 dynamicalt 还是应该先读取文件中有多少行,然后再创建新数组?
使用存储在 std::vector 中的结构。
struct Coord {
double x;
double y;
double deg;
};
std::vector<Coord> myCoords;
现在您可以使用push_back添加元素。 std::vector 将为您处理内存管理。
是的,您可以创建一个类。
如果您事先不知道数组的大小,只需使用 std::vector
,并在从文件中读取其信息时将每个元素添加到向量中。
读取文件两次,一次确定行数,第二次为真实,就是这样......幸运的是,我们现在C++,有了std::vector
,以及许多其他强大的类和模板,这使得完全没有必要经历这样的麻烦。
您可以使用std::cin
和重载operator >>
进行阅读。这取决于您的代码,但最简单的方法可能是创建一个包含必要变量的简单结构。
对于动态分配的数组,请使用 std::vector
。它是一个模板容器,将与您的结构一起使用。
struct Coo {
double x,y;
double deg;
}
std::vector< Coo > vec_cont;
如果您不想使其动态化,只需通读文件并记录行数即可。
动态,使用对象的向量。
struct Movement {
double x,y;
int degrees;
};
在类似的东西中使用它:
vector<Movement> myMovement;
然后,您可以将每行添加为移动对象。
相关文章:
- 正在将csv文件读取为双精度矢量
- 将从格式化文本文件读取的文本数据存储到链表
- C++ 读取文件读取文件不正确
- 使用对象文件读取三角形数据网格
- 如何减慢从 BVH 文件读取的 opengl 动画?
- 从文件读取,并写入函数C++中的数组
- 从对象C++中的文件读取内容时出现分段错误
- 从文件读取并通过矢量输出到控制台
- 尝试将字符串从文件读取到无符号字符向量中
- 如何将文本文件读取到二维数组中并以 c++ 打印
- 简化文件读取的函数
- 如何将逗号分隔的文件读取为 2D int 数组?
- 在 c++ 中将数据从文件读取到队列中
- 'std::wstring_convert'尽可能多地转换(从 UTF8 文件读取块)
- C++,从文件读取到结构,然后读取到向量(结构被推入向量太多次,而不仅仅是一次)
- 文件读取C++包括空格键
- 从文件读取时未将值推回矢量
- 从文件 C++ 读取时的无限循环
- 从同一文件读取和写入?
- 从.txt文件读取到C++中的双精度向量