我正在尝试用C++编写一个程序,能够对比两个 .txt 文件。
struct line
{
string text;
size_t num;
int status;
};
void compareFiles(vector<line> &buffer_1, vector<line> &buffer_2, size_t index_1, size_t index_2)
{
while(index_1 < buffer_1.size())
{
while(index_2 < buffer_2.size())
{
X = buffer_1[index_1].text;
Y = buffer_2[index_2].text;
if(X == Y)
{
++index_1;
++index_2;
}
else
{
LCS();
string lcs = printLCS(X.length(), Y.length());
/*
* Here's my problem
*/
}
}
}
}
如您所见,我有两个缓冲区(行向量)以前加载了文件内容。我还拥有完全可用的LCS算法(已经测试)。LCS在全局定义的字符串X和Y上运行。
所以,我真正需要做的是逐行比较缓冲区与LCS,但我没有找到一种方法来实现它。
请问您能帮助我吗?
while()
循环 -- 当buffer_2
中的行用尽时会发生什么?index_1
将永远不会增加,最外层的while
循环将永远不会终止。while (index_1 < buffer_1.size() || index_2 < buffer_2.size()) { ... }
可以让您完全运行两个输入。(也许一个输入只是在末尾附加了一个换行符而已...) - sarnold