c ++终端输出不生成新行

时间:2017-02-10 05:37:45

标签: linux c++11 terminal newline

我有以下问题:

我的C ++代码看起来像这样。

int main()
{
std::string String;

int rows = 0;
int cols = 0;

std::getline (std::cin,String);

std::cin >> rows;
std::cin >> cols;

std::cout << "Enter a fancy string: " << String << std::endl;
std::cout << "Enter the number of rows: " << rows << std::endl;
std::cout << "Enter the number of cols: " << cols << std::endl;

std::string ArrayofStrings;
    for(int x = 0; x<rows; x++){
        ArrayofStrings = "";
        for (int y = 0; y < cols; y++) {
            ArrayofStrings += String;
        }
        std::cout << ArrayofStrings << std::endl;           }
// std::cout << std::endl;
return 0;

}

简而言之,它读入字符串并打印出具有指定尺寸的给定字符串的数组。但是当我在linux终端上运行它时,输出看起来像这样:

Enter a fancy string: 4
Enter the number of rows: 5
Enter the number of columns: 5
44444
44444
44444
44444
44444[enkhtaiv@royal-10] (3)$

但我不能让[enkhtaiv @ royal-10] linux文本从一条线开始,无论如何。我试过std::endl, "\n"两个,但它们似乎不起作用。

令我感到困惑的是,这个程序在IDE上运行得很好,但是当我在Linux终端上编译并运行它时,这个问题仍然存在。 我是C ++和linux的初学者,所以如果这是一个完全无关紧要的问题我会提前道歉。

1 个答案:

答案 0 :(得分:0)

解决方案是...添加第二个EOL。

您没有告诉我们取消注释

时会发生什么
identical(percovN, percov)
#[1] TRUE

代码末尾。如果你最终读完了

 std::cout << std::endl;

您希望,这可能意味着您的shell配置不正确,并且会“吃掉”上一行的44444 [enkhtaiv@royal-10] (3)$ 。尝试修改\n

中的PS1