【发布时间】:2019-04-06 21:02:17
【问题描述】:
出于某种原因,我的 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 搞砸了,你有没有尝试退出 shell 并在新的 shell 中运行它?
-
如果你杀死或退出了一个 curses 应用程序而没有让它正确清理,那么是的,你可能会遇到这样的问题。如果 curses 程序是你的,那么确保你自己清理干净,然后干净地退出。
-
另外,你确定你的函数中没有任何东西可以打印空格吗?您是否尝试过评论所有内容并仅运行输出语句以确保它是实际上是您的终端?
-
是的,我试图将所有内容都注释掉并打印出来,它给了我那些空白
-
这个问题并不清楚代码是否是 ncurses 应用程序的一部分,或者 ncurses 的东西以前是无关的,现在你只是想取消你的 shell。如果是后者,命令行实用程序
reset应该会有所帮助。