我说的是在第几行写文件,不是计算行数
时间: 2024-02-28 10:57:47 浏览: 42
非常抱歉,我理解错误了。如果你想在输出文件的特定行写入内容,可以使用C++中的`fstream`类,其中`std::fstream::seekp()`函数可以设置文件指针到指定位置,然后使用`std::fstream`类中的`<<`运算符向文件中写入内容。
以下是一个示例程序,演示如何在输出文件的第5行写入一个字符串:
```c++
#include <iostream>
#include <fstream>
#include <string>
int main() {
std::fstream file("output.txt", std::ios::in | std::ios::out);
std::string line;
int line_num = 5;
int current_line = 1;
while (std::getline(file, line)) {
if (current_line == line_num) {
file.seekp(file.tellg()); // Set the write pointer to the current read position
file << "This is the new line" << std::endl;
break;
}
++current_line;
}
file.close();
return 0;
}
```
在这个程序中,我们使用了`std::fstream`类来打开文件,并使用`std::ios::in | std::ios::out`参数来同时打开文件的读和写权限。在读取文件的每一行时,我们判断当前的行数是否是需要写入的行数。如果是,我们使用`file.seekp()`函数将文件指针移动到当前读取位置,然后使用`<<`运算符向文件中写入内容。最后,我们关闭文件。
阅读全文