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

时间:2018-11-02 15:36:12

标签: 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,我觉得那可能弄乱了我的外壳。但是我什至不知道该去哪里解决这个问题

1 个答案:

答案 0 :(得分:1)

此症状是ncurses应用程序无法正常退出并使终端处于错误的“模式”的教科书案例。只需打开一个新的终端对其进行修复。

如果ncurses应用程序确实退出了,则它会在main的末尾缺少一些反初始化(endwin()?),这可能是由您修复(如果您编写了应用程序)或向开发者报告(否则)。