为什么输出在每一行之前都有不必要的空格?

时间:2018-04-03 12:17:11

标签: c++ stdout cout ncurses

我写了一个C ++程序来打印用户在按下回车键后输入的所有内容,所以在此之前他不会看到他输入的内容。以下是代码:

#include <iostream>
#include <stdio.h>
#include <ncurses.h>
#include <string.h>

using namespace std;

int main() {
    char c, printText[10000];
    int key, i;

    initscr();
    refresh();
    noecho();

    while(1) {
        c = getch();
        key = c;        
        if( key == 10 ) {
            cout<< printText << endl;
            memset( printText, 0, sizeof(printText) );
            i=0;
        }
        else 
            printText[i++] = c;
     }

    endwin();
}

此代码提供以下输出:

code output

根据要求的输出仅在用户按下enter后出现。但是正如您所看到的那样,在每行从输出中的第二行开始之前出现空格并且这是不需要的。我无法理解为什么输出中出现这些空间,我该如何避免?请指导。

1 个答案:

答案 0 :(得分:2)

您将curses输出和iostream输出混合到同一设备。使用其中一种,否则你将会发生不可预知的奇怪事情,就像你所看到的那样。