0
我試圖寫回到以前在程序中讀取的csv文件。該方案目前看起來是這樣的:如何寫回剛纔讀取的csv文件(C++)?
ifstream file;
file.open ("file");
e=0;
while (file.good()) {
getline (file, infor,',');
istringstream (infor) >> infoc;
var1[e]=infoc;
getline (file, infor,',');
istringstream (infor) >> infoc;
var2[e]=infoc;
getline (file, infor,',');
istringstream (infor) >> infoc;
var3[e]=infoc;
getline (file, infor,',');
istringstream (infor) >> infoc;
var4[e]=infoc;
getline (file, infor,',');
istringstream (infor) >> infoc;
var5[e]=infoc;
getline (file, infor,',');
istringstream (infor) >> infoc;
var6[e]=infoc;
getline (file, infor,',');
istringstream (infor) >> infoc;
var7[e]=infoc;
getline (file, infor,',');
istringstream (infor) >> infoc;
var8[e]=infoc;
getline (file, infor,',');
istringstream (infor) >> infoc;
var9[e]=infoc;
getline (file, infor,',');
istringstream (infor) >> infoc;
var10[e]=infoc;
getline (file, infor,',');
istringstream (infor) >> infoc;
var11[e]=infoc;
getline (file, infor,',');
istringstream (infor) >> infoc;
var12[e]=infoc;
getline (file, infor,',');
istringstream (infor) >> infoc;
var13[e]=infoc;
getline (file, infor,',');
istringstream (infor) >> infoc;
var14[e]=infoc;
getline (file, infor,',');
istringstream (infor) >> infoc;
var15[e]=infoc;
++e;
}
var1[e] = var1[e] + v1;
var2[e] = var2[e] + v2;
var3[e] = var3[e] + v3;
var4[e] = var4[e] + v4;
var5[e] = var5[e] + v5;
var6[e] = var6[e] + v6;
var7[e] = var7[e] + v7;
var8[e] = var8[e] + v8;
var9[e] = var9[e] + v9;
var10[e] = var10[e] + v10;
var11[e] = var11[e] + v11;
var12[e] = var12[e] + v12;
var13[e] = var13[e] + v13;
var14[e] = var14[e] + v14;
var15[e] = var15[e] + v15;
//WRITE TO compYTD
file.close();
之前,我收我想寫新計算的變量回文件的文件,刪除先前讀到的一切。有沒有一個功能可以讓我做到這一點?還有一個單獨的功能,允許我回寫這個文件,添加到已經存在的行嗎?
我可以關閉我讀取的文件並打開同一個備份寫入?並將這添加到文件中的現有數據或擦除/覆蓋它? – user2611318
除非您指定了其他內容,'ofstream'會創建一個新的空文件。這就是我提出這種方法的原因。但是,您必須在閱讀完所有數據後執行此操作。如果你想同時讀寫,你將不得不在文件上有兩個不同的名字[好吧,在Unix/Linux/MacOS類型的操作系統中沒有嚴格要求,但它對RELY來說確實不太好] –
不存在這樣的事情作爲打開一個文件在追加模式或東西? – user2611318