c++ - 无法输出到输出文件

标签 c++ output parallel-arrays

<分区>

在 C++ 中,您可以输出到一个输出文件,然后再次重新打开输出文件以在原始输出下输出其他内容。

例如, 我打开输出文件,然后输出标题,然后关闭输出文件。

然后重新打开输出文件并在该标题下输出一些数据,然后再次关闭它。

但是当我尝试这样做时,我的标题被删除并且它只输出数据

我会将标题输出到此处的输出文件:ID# NAME BALANCE

然后我关闭它,然后尝试输出它下面的数据。例如: 1001 约翰尼 1050.00

它将覆盖标题并只输出数据

所以不要把它放在我的输出文件中

ID#   NAME    BALANCE
----------------------
1001  Johnny  1050.00

它只会在输出文件中有这个:

1001  Johnny 1050.00

这是我输出标题的函数:

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>在我的头文件中。

最佳答案

std::ofstream 可以在覆盖模式(默认)或追加模式下打开。

如果您知道何时在覆盖模型中打开,请使用:

fout.open(outFileName.c_str());

如果您能够使用 C++11 编译器,则可以:

fout.open(outFileName);

如果您知道何时要以追加模式打开文件,请使用:

fout.open(outFileName, std::ofstream::app);

fout.open(outFileName, fout.app);

由于您没有以追加模式打开文件,因此当您第二次打开文件时,其内容会被覆盖。

关于c++ - 无法输出到输出文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43702955/

相关文章:

c++ - 如何发送原始 JSON Post 请求 C++

c++ - 当我找到行尾时如何停止阅读

JAVA——程序功能为输入输出、输入输出;想让程序的功能分别为输入输入、输出、输出

php - 如何通过 jQuery AJAX 请求输出响应 HTML 数据?

java - 冒泡排序并行数组

python - 在 Python 中搜索并行数组

c++ - 对 WinMain@16 的 undefined reference - 代码块

c++ - Windows CE - 禁用 CComboBox 突出显示

c - 一个用 C 语言确定字符串回文串最少插入次数的程序。我得到的错误是标准输出丢失

java - 如何在 Java 中将并行数组中的元素复制到新的并行数组中且不重复?