C++ cout 和 endl 无法在终端上正确打印

标签 c++ cout endl

出于某种原因,我的 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/

相关文章:

c++ - 使用 C++ 在终端上并排打印两个表格

c++ - 如果 cout 丢失,循环进入无限循环

c++ - enable_if 可以用作非额外参数(例如,用于构造函数)吗?

c++ - C++ 中的覆盖和重载是怎么回事?

c++ - 换行符改变了从文件中读取的字符串在 C++ 中的打印方式

c++ - GNU g++ 4.9.2 中的重载 endl 编译问题

C++流作为重载运算符时的参数<<

android - Android 上 Qt 5.3 RC 中的 QtPositioning 错误

c++ - 移动数组中字符串的位置

C++ 使用 toString() 方法有什么问题