c++文件写入操作
ofstream outf;outf.open("./FirstStepData.txt",ios::app);
outf<< copyNo <<G4endl;
outf.close();
目前结果长这样,这个文件一次只存一个数据,然后就被关闭了,但是我希望数据是空一格,然继续同行的存,然后数据到一定数量的时候
再换行,怎么控制啊,我数据太多了,不能这么竖着存
你可以使用一个计数器来记录已经写入的数据数量,并在达到一定数量时换行。下面是修改后的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部分。 您可以使用控制流语句和计数器来控制数据的输出格式。下面是一个示例代码段来实现您描述的需求:
#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个数据换行一次。您可以根据实际情况调整这些值。
请注意,这只是一个简单的示例代码,仅供参考。实际应用中,您可能需要根据自己的需求进行适当的修改。
如果问题已经解决,请设置最佳答案 isdkz 发表于 2023-7-29 15:31
你可以使用一个计数器来记录已经写入的数据数量,并在达到一定数量时换行。下面是修改后的C++代码,实现你 ...
我的数据不是这种for循环存进去的,每次运行,都是一个类调用另一个类,所以每次只存一个数据,存完就关闭了,不像for循环这样好控制 猪猪虾 发表于 2023-7-29 15:44
我的数据不是这种for循环存进去的,每次运行,都是一个类调用另一个类,所以每次只存一个数据,存完就关 ...
建议发一下源代码
页:
[1]