C++ 代码编译错误修复:写入 TSV 文件
修改后的代码如下:
void write_tsv2(const std::string& filename, const matrix<double, row_major>& mat, const std::vector<std::string>& col_names) {
matrix<std::string, row_major> result(mat.size1(), 2);
for (size_t i = 0; i < mat.size1(); i++) {
for (size_t j = i+1; j < mat.size1(); j++){
result(i,0)=col_names[i];
result(j,1)=col_names[j];
}
}
std::ofstream out(filename);
if (out) {
// 输出列名
out << 'var1' << ' ' << 'var2' << ' ' << 'MIC' << '\n';
for (size_t i = 0; i < mat.size1(); ++i) {
out << result(i,0) <<'\t'<<result(i,1) << '\n';
}
// 输出数据行
for (size_t i = 0; i < mat.size1(); ++i) {
out << std::setprecision(3) <<std::fixed << mat(i, 0) << '\n';
}
out.close();
} else {
// 输出文件打开失败错误信息
std::cerr << "Error: Failed to open file." << std::endl;
}
}
修改说明:
- 添加了对文件打开是否成功的检查。
- 添加了对输出文件流的关闭操作。
- 修正了输出列名的位置。
- 去掉了注释掉的输出数据行的代码块。
原文地址: https://www.cveoy.top/t/topic/p8B7 著作权归作者所有。请勿转载和采集!