我想在文件中找到一個字符串並將其替換爲用戶輸入。
這是我粗略的代碼。在C++中搜索並替換txt文件中的字符串
#include <iostream>
#include <fstream.h>
#include <string.h>
int main(){
istream readFile("test.txt");
string readout,
search,
replace;
while(getline(readFile,readout)){
if(readout == search){
// How do I replace `readout` with `replace`?
}
}
}
UPDATE
這裏是解決我的問題代碼
的test.txt:
id_1
arfan
haider
id_2
saleem
haider
id_3
someone
otherone
C++代碼:
#include <iostream>
#include <fstream>
#include <string>
using namesapce std;
int main(){
istream readFile("test.txt");
string readout,
search,
firstname,
lastname;
cout << "Enter the id which you want to modify";
cin >> search;
while(getline(readFile,readout)){
if(readout == search){
/*
id remains the same
But the First name and Last name are replaced with
the user `firstname` and `lastname` input
*/
cout << "Enter new First name";
cin >> firstname;
cout << "Enter Last name";
cin >> lastname;
}
}
}
假設:
用戶搜索ID。在那之後,用戶輸入名字和姓氏Shafiq
和Ahmed
。 乳寧這個代碼test.txt
文件必須修改記錄一樣,後:
…
id_2
Shafiq
Ahmad
…
只有記錄更改,剩下的文件將保持不變。
建議:寫入一個新文件並將其移動到原始文件+ std :: string中查找並替換成員函數。 – stefaanv
我剛纔看到你想要替換完整的行,所以只有我的第一個建議是有效的。第二個是取代部分線條。文件中的內聯替換僅適用於替換相同的大小。 – stefaanv