【问题标题】:std::cout to print character N timesstd::cout 打印字符 N 次
【发布时间】:2011-10-25 23:46:01
【问题描述】:

如何使用std::cout 打印一个字符 N 次而不循环?

有没有办法将文本光标移回以使std::cout << std::endl; 的效果无效?即向上移动一行(假设我们在执行std::cout << std::endl; 操作后从未打印任何内容)。

【问题讨论】:

标签: c++ cout


【解决方案1】:
 std::cout << std::string(100, '*') << std::endl;

要将队列向上移动,您必须使用终端转义(假设 isatty() 表示您正在使用终端转义)。

【讨论】:

  • 还是一开始就不把 EOL 删掉??
  • 没错,我考虑过。在我的特定程序中,否则它似乎更容易。
  • 这不适用于 Unicode 字符。
  • @Mr.Clear 显然,unicode 不受支持(并且现有的小机器已被弃用)。我最好的想法可能是fmt::format 这里:compiler-explorer.com/z/1f98dTn5e
【解决方案2】:
std::cout << std::setfill(the_char) << std::setw(100) << "";

【讨论】:

    【解决方案3】:

    有没有办法支持我们消除 cout

    使用ternary operator(或者如果你引用的话,使用if语句)......类似......

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-29
      • 2019-01-11
      • 2013-12-11
      • 2013-03-13
      • 2015-12-07
      相关资源
      最近更新 更多