【发布时间】:2016-10-31 12:13:10
【问题描述】:
我如何在文本文件中找到一个特定的单词并将该单词替换为另一个单词并将测试写回文件(如果文本是段落分隔的)。我可以替换单词;如果它不是段落分隔的。使用 string.find 和字符串替换。
【问题讨论】:
-
将文件读入某种容器(我建议
std::vector<std::string>),然后查看。 -
定义段落分隔是什么意思?
我如何在文本文件中找到一个特定的单词并将该单词替换为另一个单词并将测试写回文件(如果文本是段落分隔的)。我可以替换单词;如果它不是段落分隔的。使用 string.find 和字符串替换。
【问题讨论】:
std::vector<std::string>),然后查看。
据我了解,您对替换单个段落中的单词感到满意,并且您对包含多个段落的文本持怀疑态度。
请查看一个名为“getline()”的函数。
此函数会读取整个文本,直到遇到“\n”元素(下一行)
所以你可以使用这个 getline 函数将一个完整的段落变成一个字符串。
在 while 循环中使用这个 getline 函数可以让您从文本文件中获取所有段落
下面提供了示例代码
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
int main()
{
string a,b;
a="he";
b="she";
fstream text("text.txt");
string line;
while (!text.eof( ))
{
getline(text,line);
cout<<line<<endl;
//This string "line" is basically a string containing your first paragraph
//ADD your find and replace code here for the string "line".
//The second time the while loop executes the string "line" will contain the second paragraph and so on..
}
}
}
【讨论】: