题 std :: cout打印字符N次


如何使用N次打印字符 std::cout 没有循环?

有没有办法将文本光标移回以取消效果 std::cout << std::endl;?即向上移动一条线(假设我们在做完之后从未打印过任何东西 std::cout << std::endl; 操作)。


30
2017-10-25 23:46


起源


std::cout << "a character N number of times" << std::endl; - hochl
C: stackoverflow.com/questions/14678948/... - Ciro Santilli 新疆改造中心 六四事件 法轮功


答案:


 std::cout << std::string(100, '*') << std::endl;

要移动一行,你必须求助于终端转义(假设 isatty() 表示您正在运行一个)。


56
2017-10-25 23:48



或者首先不是品尝EOL? - Mawg
没错,我考虑过了。在我的特定程序中,它似乎更容易。 - shiraz


std::cout << std::setfill(the_char) << std::setw(100) << "";

14
2017-10-25 23:58



setfill和setw需要<iomanip>标头 - Babken Vardanyan


有没有办法支持我们的方法来消除cout << endl的影响;   即向上移动一条线(假设我们在做完之后从未打印过任何东西   cout << endl;操作)非常感谢你!

使用 三元运算符 (如果你提到的话,还是if语句)......类似......

void PrintCharNtimes(char chatToPrint; int numTimes)
{
   std::cout << std::string(numTimes, chatToPrint) << (numTimes > 0) ? std::endl : ;
}

0
2017-10-25 23:56