无法输出到输出文件
Having trouble outputting to a output file
在 c++ 中,您可以输出到一个输出文件,然后再次重新打开输出文件以在原始输出下输出其他内容吗?
例如,
我打开输出文件然后输出标题然后关闭输出文件。
然后重新打开输出文件并输出该标题下的一些数据,然后再次关闭它。
但是当我尝试这样做时,我的标题被删除并且它只输出数据
我会将标题输出到此处的输出文件:ID# NAME BALANCE
然后我关闭它,然后尝试输出它下面的数据。例如:
1001 强尼 1050.00
它将覆盖 header 并只输出数据
所以不要把它放在我的输出文件中
ID# NAME BALANCE
----------------------
1001 Johnny 1050.00
它只会在输出文件中有这个:
1001 Johnny 1050.00
这是我输出 header:
的函数
void OutputHeaderToFile(string outFileName)
{
ofstream fout; /** allows the ability to use fout **/
fout.open(outFileName.c_str());
fout << "ID #" << left << setw(20) << "Name" << setw(21) << "BALANCE DUE" << endl;
fout << right;
fout << "----" << left << setw(20) << "--------------------" << setw(20) << "-----------"
<< endl;
fout.close();
}
它会输出
ID #Name BALANCE DUE
-----------------------------------
那我还有一个函数可以输出那个标题下的数据。
void OutputDataToFile(string nameArray[], int idArray[], float balArray[], string outFileName)
{
ofstream fout; /** allows the ability to use fout **/
fout.open(outFileName.c_str());
fout << idArray[searchIndex] << " " << nameArray[searchIndex] << " " << balArray[searchIndex];
fout.close();
}
并且我已将 #include <fstream>
包含在我的 header 文件中。
A std::ofstream
可以在覆盖模式(默认)或追加模式下打开。
如果您知道何时在覆盖模型中打开,请使用:
fout.open(outFileName.c_str());
如果您能够使用 C++11 编译器,那可以是:
fout.open(outFileName);
如果您知道何时要以追加模式打开文件,请使用:
fout.open(outFileName, std::ofstream::app);
或
fout.open(outFileName, fout.app);
由于您没有以追加模式打开文件,第二次打开文件时其内容会被覆盖。
在 c++ 中,您可以输出到一个输出文件,然后再次重新打开输出文件以在原始输出下输出其他内容吗?
例如, 我打开输出文件然后输出标题然后关闭输出文件。
然后重新打开输出文件并输出该标题下的一些数据,然后再次关闭它。
但是当我尝试这样做时,我的标题被删除并且它只输出数据
我会将标题输出到此处的输出文件:ID# NAME BALANCE
然后我关闭它,然后尝试输出它下面的数据。例如: 1001 强尼 1050.00
它将覆盖 header 并只输出数据
所以不要把它放在我的输出文件中
ID# NAME BALANCE
----------------------
1001 Johnny 1050.00
它只会在输出文件中有这个:
1001 Johnny 1050.00
这是我输出 header:
的函数void OutputHeaderToFile(string outFileName)
{
ofstream fout; /** allows the ability to use fout **/
fout.open(outFileName.c_str());
fout << "ID #" << left << setw(20) << "Name" << setw(21) << "BALANCE DUE" << endl;
fout << right;
fout << "----" << left << setw(20) << "--------------------" << setw(20) << "-----------"
<< endl;
fout.close();
}
它会输出
ID #Name BALANCE DUE
-----------------------------------
那我还有一个函数可以输出那个标题下的数据。
void OutputDataToFile(string nameArray[], int idArray[], float balArray[], string outFileName)
{
ofstream fout; /** allows the ability to use fout **/
fout.open(outFileName.c_str());
fout << idArray[searchIndex] << " " << nameArray[searchIndex] << " " << balArray[searchIndex];
fout.close();
}
并且我已将 #include <fstream>
包含在我的 header 文件中。
A std::ofstream
可以在覆盖模式(默认)或追加模式下打开。
如果您知道何时在覆盖模型中打开,请使用:
fout.open(outFileName.c_str());
如果您能够使用 C++11 编译器,那可以是:
fout.open(outFileName);
如果您知道何时要以追加模式打开文件,请使用:
fout.open(outFileName, std::ofstream::app);
或
fout.open(outFileName, fout.app);
由于您没有以追加模式打开文件,第二次打开文件时其内容会被覆盖。