gpt4 book ai didi

c++/以特定方式在txt文件上追加数据

转载 作者:行者123 更新时间:2023-11-30 01:48:44 24 4
gpt4 key购买 nike

我有一个这样的 txt 文件:

123456

123456

abcdef

...

使用C++,我想用下面的方式打开它并添加数据

123456 new data new data

123456 new data new data

abcdef new data new data

...

我已经在 stackOverflow 上看到这个 post 但它是用 Python 写的。

我用过这个功能

std::ofstream file_to_save;
file_to_save.open(path, ios::out | ios::app);

但它会在文件末尾添加数据,而不是在每个单词旁边。

编辑: 实际上,我在一个循环中连续添加日期,而不是一次添加所有内容。这就是困难所在。所以我的文件包含所有日期,然后在循环中创建新数据。让我们说“新数据”,然后我想将这个新数据(总是不同的)分配给已经存在的文件。

123456

123456

abcdef

...

我在循环“新数据 1”中创建新数据,然后想像那样添加到文件中

123456 new data 1

123456

abcdef

...

然后在我的循环中的第 2 步,我创建“新数据 2”然后想像这样添加到文件中

123456 new data 1

123456 new data 2

abcdef

...

然后在循环的第 3 步,我创建了“新数据 3”,然后想像那样添加到文件中

123456 new data 1

123456 new data 2

abcdef new data 3

...and so on, until fill the entire file.

有人可以帮助我吗?

感谢

最佳答案

您必须将现有文件的内容存储在一个数组中或 vector 并将其写回同一个文件。

void appendToFile(string sFilename, int nInsertAt, string sDataToInsert)
{
std::ifstream infile("output.txt");

string line;
vector<string> vLines;

while (std::getline(infile, line))
{
vLines.push_back(line);
}

infile.close();
std::ofstream outfile("output.txt");

for (int i = 0; i < vLines.size(); i++)
{
char buff[1024];
if (i == nInsertAt)
{
sprintf(buff, "%s %s", vLines[i].c_str(), sDataToInsert.c_str());
outfile << buff << endl;
}
else
{
outfile << vLines[i] << endl;
}

}

outfile.close();
}

void test()
{
for (int i = 0; i < 10; i++)
{
char buff[1024];
sprintf(buff, "new data %d", i);
appendToFile("output.txt", i, buff);
}
}

关于c++/以特定方式在txt文件上追加数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30091667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com