猪猪虾 发表于 2023-7-29 15:31:07

c++文件写入操作

   ofstream outf;
            outf.open("./FirstStepData.txt",ios::app);
            outf<< copyNo <<G4endl;
            outf.close();
目前结果长这样,这个文件一次只存一个数据,然后就被关闭了,但是我希望数据是空一格,然继续同行的存,然后数据到一定数量的时候
再换行,怎么控制啊,我数据太多了,不能这么竖着存

isdkz 发表于 2023-7-29 15:31:18

你可以使用一个计数器来记录已经写入的数据数量,并在达到一定数量时换行。下面是修改后的C++代码,实现你的需求:

#include <iostream>
#include <fstream>
using namespace std;

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

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

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

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

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

      // 增加数据计数
      dataCount++;

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

    outf.close();
    return 0;
}


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

请注意,在实际使用时,你需要根据你的数据来源来适当修改示例中的数据数组dataArr部分。

陶远航 发表于 2023-7-29 15:31:21

您可以使用控制流语句和计数器来控制数据的输出格式。下面是一个示例代码段来实现您描述的需求:

#include <iostream>
#include <fstream>

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

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

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

      // 增加数据计数器
      dataCount++;

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

    outf.close();

    return 0;
}


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

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

请注意,这只是一个简单的示例代码,仅供参考。实际应用中,您可能需要根据自己的需求进行适当的修改。
如果问题已经解决,请设置最佳答案

猪猪虾 发表于 2023-7-29 15:44:56

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

我的数据不是这种for循环存进去的,每次运行,都是一个类调用另一个类,所以每次只存一个数据,存完就关闭了,不像for循环这样好控制

tommyyu 发表于 2023-7-29 16:16:14

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

建议发一下源代码
页: [1]
查看完整版本: c++文件写入操作