我有一點點的C++問題,我無法通過在線瀏覽來解決。這裏是我的代碼(提取):如何在fstream文件之間切換而不關閉它們(同時輸出文件) - C++
if(File.is_open()) {
while(!File.eof()) {
i++;
getline(File,Line);
if(i>=2) { //Skip Headers
int CharCount=0;
for(int CharPosition=0; CharPosition<Line.size(); CharPosition++) {
if(Line[CharPosition]==',') {
Length=CharPosition;
break;
}
}
NameText=Line.substr(0,Length);
Path= Path_Folder + "\\" + NameText + ".csv";
if(!CheckExistance(Path.c_str())) {
fstream Text_File;
}
Text_File.open(Path, fstream::in | fstream::out | fstream::app);
Text_File<<Line<<"\n";
Text_File.close();
}
}
}
此代碼工作正常,但我想改變它關閉每次進入while循環時間Text_File
的事實。
基本上,這個程序在很多較小的文件中分割出一個很大的輸入文件。由於我的 較小的文件越來越大,執行速度越來越慢 (正常)。然後我的目標是讓這個while循環中的所有更小的文件(Text_File
)在 中打開,並將fstream指針(指針?)從一個切換到另一個 。
我試圖改變爲:
...
NameText=Line.substr(0,Length);
Path= Path_Folder + "\\" + NameText + ".csv";
if(!CheckExistance(Path.c_str())) {
fstream Text_File;
}
if(!Text_File.open()) {
Text_File.open(Path, fstream::in |fstream::out | fstream::app);
}
Text_File<<Line<<"\n";
\\Text_File.close();
...
但它正在同Text_File
無論什麼NameText
是。所以我猜測fstream Text_File
的指針不會改變。那麼我需要什麼?休息指針?怎麼樣?
謝謝大家!
不確定它是相關的,但我正在使用Microsoft Visual C++ 2010 Express。另外,我既不是教育也不是生活的程序員,所以如果你可以解釋它而不用太先進的話,我會很感激。
如何使'File'一個數組? – wallyk
我覺得像一個指向一個(或每個)已經聲明的'Text_File's將工作 –