我不明白为什么我的wcin不清理?

时间:2015-10-29 14:51:22

标签: c++ cin

当我运行这个while循环时,我的初始cin按预期工作(我有其他检查,如果关键字等于其他命令此刻),但我不太明白为什么我的wcin不会更新之后它是第一次通过while循环。

例如,我让我的程序能够找到您输入的任何文件,包括它的文件类型扩展名,并且首先按照预期工作,并且只能立即打开它。

但是,如果我尝试搜索另一个文件,它将只重新打开第一个文件中运行的第一个文件的另一个应用程序。我查了几个技巧,使用wcin.ignore()和wcin.clear(),但我没有取得任何进展。如果有人可以帮助解释1)为什么会这样,2)指出我可能的解决方案让我自己查找和探索我会非常感激。谢谢大家

为了帮助人们更好地理解我的问题,这里是我最初打开“Text1.txt”时的命令行链接,然后重试相同的程序并打开文件“Diego.txt”,但它只是重新打开“Text1” .txt“再次。

Single Run Through Of Program

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);
    }
}

0 个答案:

没有答案