鱼C论坛

 找回密码
 立即注册
查看: 1179|回复: 4

[已解决]c++文件写入操作

[复制链接]
发表于 2023-7-29 15:31:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1.    ofstream outf;
  2.             outf.open("./FirstStepData.txt",ios::app);
  3.             outf<< copyNo <<G4endl;
  4.             outf.close();
复制代码

目前结果长这样,这个文件一次只存一个数据,然后就被关闭了,但是我希望数据是空一格,然继续同行的存,然后数据到一定数量的时候
再换行,怎么控制啊,我数据太多了,不能这么竖着存
捕获.JPG
最佳答案
2023-7-29 15:31:18
你可以使用一个计数器来记录已经写入的数据数量,并在达到一定数量时换行。下面是修改后的C++代码,实现你的需求:

  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;

  4. int main() {
  5.     ofstream outf;
  6.     outf.open("./FirstStepData.txt", ios::app);

  7.     // 假设你希望每行存储的数据数量为5
  8.     const int dataPerLine = 5;

  9.     // 已经写入的数据数量计数器
  10.     int dataCount = 0;

  11.     // 假设你有一个数据数组,假设为dataArr
  12.     int dataArr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 这里只是示例数据

  13.     for (int i = 0; i < sizeof(dataArr) / sizeof(dataArr[0]); i++) {
  14.         outf << dataArr[ i] << " "; // 写入数据并在数据之间加上空格

  15.         // 增加数据计数
  16.         dataCount++;

  17.         // 如果达到了每行存储的数量,就换行,并重置计数器
  18.         if (dataCount == dataPerLine) {
  19.             outf << endl;
  20.             dataCount = 0;
  21.         }
  22.     }

  23.     outf.close();
  24.     return 0;
  25. }
复制代码


在这个示例中,我们引入了一个  dataPerLine  变量来表示每行存储的数据数量,你可以根据实际需求调整这个值。然后使用一个循环来遍历数据数组,并在写入数据后增加计数器  dataCount ,当计数器等于  dataPerLine  时,我们会在文件中换行,并重置计数器。

请注意,在实际使用时,你需要根据你的数据来源来适当修改示例中的数据数组  dataArr  部分。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-7-29 15:31:18 | 显示全部楼层    本楼为最佳答案   
你可以使用一个计数器来记录已经写入的数据数量,并在达到一定数量时换行。下面是修改后的C++代码,实现你的需求:

  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;

  4. int main() {
  5.     ofstream outf;
  6.     outf.open("./FirstStepData.txt", ios::app);

  7.     // 假设你希望每行存储的数据数量为5
  8.     const int dataPerLine = 5;

  9.     // 已经写入的数据数量计数器
  10.     int dataCount = 0;

  11.     // 假设你有一个数据数组,假设为dataArr
  12.     int dataArr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 这里只是示例数据

  13.     for (int i = 0; i < sizeof(dataArr) / sizeof(dataArr[0]); i++) {
  14.         outf << dataArr[ i] << " "; // 写入数据并在数据之间加上空格

  15.         // 增加数据计数
  16.         dataCount++;

  17.         // 如果达到了每行存储的数量,就换行,并重置计数器
  18.         if (dataCount == dataPerLine) {
  19.             outf << endl;
  20.             dataCount = 0;
  21.         }
  22.     }

  23.     outf.close();
  24.     return 0;
  25. }
复制代码


在这个示例中,我们引入了一个  dataPerLine  变量来表示每行存储的数据数量,你可以根据实际需求调整这个值。然后使用一个循环来遍历数据数组,并在写入数据后增加计数器  dataCount ,当计数器等于  dataPerLine  时,我们会在文件中换行,并重置计数器。

请注意,在实际使用时,你需要根据你的数据来源来适当修改示例中的数据数组  dataArr  部分。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-29 15:31:21 | 显示全部楼层
您可以使用控制流语句和计数器来控制数据的输出格式。下面是一个示例代码段来实现您描述的需求:

  1. #include <iostream>
  2. #include <fstream>

  3. int main() {
  4.     std::ofstream outf;
  5.     outf.open("./FirstStepData.txt", std::ios::app);

  6.     // 定义数据数量和换行间隔
  7.     int dataCount = 0;
  8.     int newlineInterval = 5;  // 每五个数据换行

  9.     for (int i = 0; i < 10; ++i) {  // 假设有10个数据需要写入
  10.         // 写入数据
  11.         outf << i << " ";

  12.         // 增加数据计数器
  13.         dataCount++;

  14.         // 判断是否达到换行间隔
  15.         if (dataCount % newlineInterval == 0) {
  16.             outf << std::endl;  // 换行
  17.         }
  18.     }

  19.     outf.close();

  20.     return 0;
  21. }
复制代码


在这个示例中,我们使用dataCount变量来跟踪已经写入文件的数据数量,并使用取模运算符%来检查是否达到了换行间隔。如果达到了换行间隔,我们就在文件中添加一个换行符std::endl

在上述代码中,我们假设有10个数据需要写入,并且设置每5个数据换行一次。您可以根据实际情况调整这些值。

请注意,这只是一个简单的示例代码,仅供参考。实际应用中,您可能需要根据自己的需求进行适当的修改。
如果问题已经解决,请设置最佳答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-29 15:44:56 | 显示全部楼层
isdkz 发表于 2023-7-29 15:31
你可以使用一个计数器来记录已经写入的数据数量,并在达到一定数量时换行。下面是修改后的C++代码,实现你 ...

我的数据不是这种for循环存进去的,每次运行,都是一个类调用另一个类,所以每次只存一个数据,存完就关闭了,不像for循环这样好控制
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-29 16:16:14 | 显示全部楼层
猪猪虾 发表于 2023-7-29 15:44
我的数据不是这种for循环存进去的,每次运行,都是一个类调用另一个类,所以每次只存一个数据,存完就关 ...

建议发一下源代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-22 09:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表