我有以下的功能,即寫入vector
到CSV文件:刪除尾隨逗號使用複製和ostream_iterator矢量書面
#include <math.h>
#include <vector>
#include <string>
#include <fstream>
#include <iostream>
#include <iterator>
using namespace std;
bool save_vector(vector<double>* pdata, size_t length,
const string& file_path)
{
ofstream os(file_path.c_str(), ios::binary | ios::out);
if (!os.is_open())
{
cout << "Failure!" << endl;
return false;
}
os.precision(11);
copy(pdata->begin(), pdata->end(), ostream_iterator<double>(os, ","));
os.close();
return true;
}
然而,CSV文件的結尾是這樣的:
1.2000414752e-08,1.1040914566e-08,1.0158131779e-08,9.3459324063e-09,
也就是說,一個尾隨逗號被寫入文件。當我嘗試使用其他軟件程序加載文件時,這會導致錯誤。
什麼是最簡單,最有效的方法來擺脫(理想情況下,永遠不會寫)這個尾隨逗號?
您的問題將很快得到解決:http://en.cppreference.com/w/cpp/experimental/ostream_joiner – vsoftco