c++ - 将一维数组写入CSV C++中的不同列?
问题描述
我有一个生成一维值数组的函数。我想将该数组存储到 CSV 文件中。每次调用该函数时,我都想将此数据存储到 CSV 中的新列中。现在我的代码是半工作的,每次我调用函数时它都会不断地将新的数据数组添加到我的 csv 中,但它会将它添加到同一列的底部。我希望将数据存储在下一列而不是添加到第一列的底部。任何帮助将不胜感激。
* 我已经删除了生成我的standard_dev数组的代码部分*
#include <iostream>
#include <cmath>
#include <fstream>
#include <vector>
#include <iomanip>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include "functions.h"
using namespace cv;
using namespace std;
void standard_deviation_line(Mat image, int column_count) {
int sum = 0;
int standard_dev_col = 0;
int i, j;
const int cols = 3840;
int rows = image.rows;
float standard_dev[cols];
float mean[cols];
ofstream out("SD.csv", ios::app);
for (i = 0; i < cols; i++)
out << standard_dev[i] << endl;
out.close();
}
解决方案
问题是你的 for 循环中的 endl ,它输出换行符。
编辑:试试这个
template<typename Iter>
std::string join(Iter p0, Iter p1) {
std::string result{};
if(p0 != p1) {
result = std::to_string(*p0++);
}
while(p0 != p1) {
result += ',';
result += std::to_string(*p0++);
}
return result;
}
然后在没有 for 循环的情况下使用它,如下所示:
out << join(standard_dev, standard_dev + cols) << '\n';
推荐阅读
- python - 来自 Django 的 PasswordChangeForm 没有显示在具有 2 个表单的模板上
- python - 对多索引数据帧进行排序
- javascript - 在 React js 中解析 JSON
- gitlab-ci - 如何通过artifactory在gitlab CI中实现artifact存储
- python - 上传文件时出现 400 Bad Request [Flask on Cloud9]
- c# - Blazor 中缺少表情符号
- python - 如何在 python-docx 中更改标题字体和大小?
- javascript - 创建自定义钩子以覆盖 useState() 钩子并合并对象属性(React JS)
- recursion - Mips 递归赋值
- javascript - 使用提交按钮关闭模式并关闭