概述:对fin fout做个简单小结。
#include <fstream>
1、打开输入文件(fin 将文件内容读出)
ifstream fin(argv[1]);
if (!fin) {
cout << "file " << argv[1] << " does not exist." << endl;
return 1;
}
创建一个 std::ifstream 对象 fin,并使用命令行参数传递的文件名来 打开输入文件
2、循环读取文件,直到到达文件末尾
while (!fin.eof()) {
if (!fin.good()) break; // 检查流状态:如果输入流状态不正常,则退出循环。
}
fin.eof() 是 C++ 中用于检查输入流(如文件流)是否到达文件末尾的成员函数。如果流已经到达文件末尾,则返回 true;否则返回 false。
3、读取字符,并存储
string name;
fin >> name;
if (name == "VERTEX_SE3:QUAT") {
} else if (name == "EDGE_SE3:QUAT") {
}
从输入流 fin 中读取一个字符,并将其存储在字符串变量 name 中。
根据读取到的单词执行对应的操作
fin >> idx1 >> idx2;
连续读取字符。
先从输入流 fin 中读取第一个字符并赋值给 idx1。然后从输入流 fin 中读取第二个字符并赋值给 idx2
4、打开输出文件(fout 将内容写入文件)
ofstream fout("result_lie.g2o");
创建一个 ofstream 对象 fout,并使用构造函数打开名为 result_lie.g2o 的文件。
如果文件不存在,ofstream 会创建一个新文件;如果文件已存在,则会覆盖原有内容。
5、将数据写入文件
fout << "VERTEX_SE3:QUAT ";
将字符串 "VERTEX_SE3:QUAT " 写入输出流 fout。
6、关闭输出文件
fout.close();