C++ 在文本文件中间追加字符串

C++ 在文本文件中间追加字符串,c++,string,file,C++,String,File,这是我的密码 #include <string> #include <iostream> #include <fstream> int main(void){ fstream myfile2; myfile2.open("test2.txt", ios::app); string checkline; getline(myfile2, checkline); int razmer=checkline.length();

这是我的密码

#include <string>
#include <iostream>
#include <fstream>
int main(void){
    fstream myfile2;
    myfile2.open("test2.txt", ios::app);
    string checkline;
    getline(myfile2, checkline);
    int razmer=checkline.length();
    string balli="256";
    myfile2.seekp(razmer);
    myfile2<<balli;

}

我想从
伊万诺夫
->
伊万诺夫256
。没有触碰的第二根弦。但我的代码根本不起作用。提前感谢。

编辑文本文件没有简单的方法。通常的解决方案是将整个源文件读入内存,在内存中进行修改,然后写出所有文件

在您的示例中,文件似乎是基于行的,您可以逐行读取它,并将这些行放在一个文件夹中。编辑要编辑的线,然后在向量上循环并写出线


注意:写入文件时,您以写入模式打开它,因此文件将重新创建并释放所有旧内容。

编辑文本文件没有简单的方法。通常的解决方案是将整个源文件读入内存,在内存中进行修改,然后写出所有文件

在您的示例中,文件似乎是基于行的,您可以逐行读取它,并将这些行放在一个文件夹中。编辑要编辑的线,然后在向量上循环并写出线


注意:写入文件时,您以写入模式打开它,因此文件将重新创建并释放所有旧内容。

编辑文本文件没有简单的方法。通常的解决方案是将整个源文件读入内存,在内存中进行修改,然后写出所有文件

在您的示例中,文件似乎是基于行的,您可以逐行读取它,并将这些行放在一个文件夹中。编辑要编辑的线,然后在向量上循环并写出线


注意:写入文件时,您以写入模式打开它,因此文件将重新创建并释放所有旧内容。

编辑文本文件没有简单的方法。通常的解决方案是将整个源文件读入内存,在内存中进行修改,然后写出所有文件

在您的示例中,文件似乎是基于行的,您可以逐行读取它,并将这些行放在一个文件夹中。编辑要编辑的线,然后在向量上循环并写出线


注意:写入文件时,您以写入模式打开它,因此文件将重新创建并释放所有旧内容。

但是我的代码有什么问题?seekp必须返回我需要的位置,而不仅仅是在文本文件中写入。@ratkke如果您看到,例如,您将看到
app
的意思是“在每次写入之前查找到流的末尾”。因此,无论写入指针位于什么位置,您写入的所有内容都将在末尾写入。此外,即使您更改了模式,您也只需覆盖文件中的现有数据,它不会自动移动。但是我的代码有什么问题吗?seekp必须返回我需要的位置,而不仅仅是在文本文件中写入。@ratkke如果您看到,例如,您将看到
app
的意思是“在每次写入之前查找到流的末尾”。因此,无论写入指针位于什么位置,您写入的所有内容都将在末尾写入。此外,即使您更改了模式,您也只需覆盖文件中的现有数据,它不会自动移动。但是我的代码有什么问题吗?seekp必须返回我需要的位置,而不仅仅是在文本文件中写入。@ratkke如果您看到,例如,您将看到
app
的意思是“在每次写入之前查找到流的末尾”。因此,无论写入指针位于什么位置,您写入的所有内容都将在末尾写入。此外,即使您更改了模式,您也只需覆盖文件中的现有数据,它不会自动移动。但是我的代码有什么问题吗?seekp必须返回我需要的位置,而不仅仅是在文本文件中写入。@ratkke如果您看到,例如,您将看到
app
的意思是“在每次写入之前查找到流的末尾”。因此,无论写入指针位于什么位置,您写入的所有内容都将在末尾写入。此外,即使您更改模式,您只需覆盖文件中的现有数据,它也不会自动移动。什么不起作用?什么不起作用?什么不起作用?什么不起作用?什么不起作用?
Ivanov
Petrov