出于某种原因,我的 cout 语句无法在我的终端上正确打印。它创造了空间。 当我有以下代码时:
void Test::testSorted(){
vector<int> unsorted = {4, 6, 5, 2, 1, 3};
vector<int> sorted = {1, 2, 3, 4, 5, 6};
cout << "Testing isSorted function for unsorted Pancake ... : " << endl;
game.setPancakeStack(unsorted);
bool condition1 = game.isStackSorted();
cout << "Testing isSorted function for sorted Pancake ... : " ;
game.setPancakeStack(sorted);
bool condition2 = game.isStackSorted();
}
终端用准确的空间量准确输出:
Testing isSorted function for unsorted Pancake ... :
Testing isSorted function for sorted Pancake ... :
注意:我一直在为一个项目使用 ncurses,我觉得这可能弄乱了我的 shell。但是我什至不知道去哪里解决这个问题
最佳答案
此症状是 ncurses 应用程序未正确退出并使终端处于错误“模式”的教科书案例。只需打开一个新终端即可修复它。
如果 ncurses 应用程序完全退出,它会在 main
的末尾缺少一些取消初始化(endwin()
?),这可以让您修复(如果您编写了应用程序)或用于您向开发人员报告(否则)。
关于C++ cout 和 endl 无法在终端上正确打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53121594/