我有以下问题:
我的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的初学者,所以如果这是一个完全无关紧要的问题我会提前道歉。
答案 0 :(得分:0)
解决方案是...添加第二个EOL。
您没有告诉我们取消注释
时会发生什么identical(percovN, percov)
#[1] TRUE
代码末尾。如果你最终读完了
std::cout << std::endl;
您希望,这可能意味着您的shell配置不正确,并且会“吃掉”上一行的44444
[enkhtaiv@royal-10] (3)$
。尝试修改\n
PS1