当我运行这个while循环时,我的初始cin按预期工作(我有其他检查,如果关键字等于其他命令此刻),但我不太明白为什么我的wcin不会更新之后它是第一次通过while循环。
例如,我让我的程序能够找到您输入的任何文件,包括它的文件类型扩展名,并且首先按照预期工作,并且只能立即打开它。
但是,如果我尝试搜索另一个文件,它将只重新打开第一个文件中运行的第一个文件的另一个应用程序。我查了几个技巧,使用wcin.ignore()和wcin.clear(),但我没有取得任何进展。如果有人可以帮助解释1)为什么会这样,2)指出我可能的解决方案让我自己查找和探索我会非常感激。谢谢大家
为了帮助人们更好地理解我的问题,这里是我最初打开“Text1.txt”时的命令行链接,然后重试相同的程序并打开文件“Diego.txt”,但它只是重新打开“Text1” .txt“再次。
while(runZooey == true)
{
cin >> keyWord;
if(keyWord == "ff")
{
wstring fileSearchString;
cout << "Please type in a file that you would like me to open" << endl;
wcin >> fileSearchString;
std::clock_t start;
double duration;
start = std::clock();
for (int m = 0; m <= 25; m++)
{
if (availableDrives[m] != L"\0" && foundFilePath == L"")
{
std::wcout << "--------------------------------------------------------------------------------" << endl;
std::wcout << "Searching Drive: " << availableDrives[m] << endl;
std::wcout << "--------------------------------------------------------------------------------" << endl;
findFile(availableDrives[m] + L":", fileSearchString);
cout << "Comparisons: " << bruteForceComp << endl;
std::wcout << "Path is: " << foundFilePath << endl;
}
}
duration = (std::clock() - start) / (double)CLOCKS_PER_SEC;
std::cout << "Total Time: " << duration << '\n';
loadApplication(foundFilePath);
}
}