【发布时间】:2015-04-15 18:27:07
【问题描述】:
在此代码中keepSelectedFiles 包含 5 个文本文件。而keepFiles 包含来自keepSelectedFiles 的3 个文本文件。我只想比较这两个数组,然后从keepSelectedFiiles 中删除 3 个keepFiles。然后在keepSelectedFiles 中只剩下 2 个文件。此代码无效。
for (int i = 0; i < keepSelectedFiles.GetSize(); i++)
{
testbox4.AddString(keepSelectedFiles[i]);
CString s1 = keepSelectedFiles[i];
CString s2 = keepFiles[i];
for (int i = 0; i < keepFiles.GetSize(); i++)
{
if (s1.Compare(s2) != 0)
{
junkFiles.Add(keepSelectedFiles[i]);
}
}
}
有人知道如何解决这个问题吗?
【问题讨论】:
-
如果
s1和s2不相等,那么你必须将它添加到junkfiles数组中?? -
那么我该怎么纠正这段代码呢?
-
您现在已经发布了几个关于这个主题的变体,其中大部分都是非常基本的。我建议您学习编程书籍或在线课程。要求 Stack Overflow 用户为您编写和调试代码不会提高您的编码技能。
-
GazTheDestroyer 如果您认为这是您不解决此问题的基本原因。也许您是资深的,但在编程中没有什么是基本的,也没有什么是先进的。说到现实,两者都是一样的。
-
@AlexCerry 如果您将容器更改为
std::vector<CString>而不是 CStringArray,则解决方案是 2 行循环。在这个时代,几乎没有理由使用 MFC 容器类,例如 CStringArray。