我有一个小 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();
}
}
}
这段代码工作正常,但我想改变它关闭的事实Text_File
每次进入 while 循环时都会关闭的事实。
基本上,该程序将一个大输入文件拆分为许多较小的文件。随着我的小文件越来越大,执行变得越来越慢(正常)。然后,我的目标是让所有较小的文件 ( Text_File
) 在此 while 循环中打开,并将 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。另外,我不是一个程序员,无论是教育还是生活,如果你能不用太高级的话解释一下,我将不胜感激。