lol*_*123 1 c++ fstream input getline
好吧,我很难过如何做到这一点.我设法到达我要替换的线但我不知道如何更换它.
说一个名为file.txt的文件包含这个:
1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)
我想替换第3行,使其代表4而不是3.我怎么能这样做?
#include <Windows.h>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
fstream file;
string line;
int main(){
file.open("file.txt");
for(int i=0;i<2;i++){
getline(file,line);
}
getline(file,line);
//how can i replace?
}
Run Code Online (Sandbox Code Playgroud)
假设您已经在读/写模式下打开文件,您可以通过搜索来切换读写,包括寻找当前位置.但请注意,书写字符会覆盖现有字符,即不插入新字符.例如,这可能如下所示:
std::string line;
while (std::getline(file, line) && line != end) {
}
file. seekp(-std::ios::off_type(line.size()) - 1, std::ios_base::cur);
file << 'x';
Run Code Online (Sandbox Code Playgroud)
即使您位于正确的位置,也需要将流设置为未绑定状态.尝试在不寻求的情况下在读取和写入之间切换会导致未定义的行为.
| 归档时间: |
|
| 查看次数: |
5003 次 |
| 最近记录: |