C ++如何制作文本健康栏

时间:2017-08-15 23:36:05

标签: c++

我正在用C ++制作一些东西,一个准确的文字游戏,无论如何我想知道如何制作一个Text Health Bar。 ' {'是开始,'}'是健康栏的终点,':'是健康,所以它像{:::::::}。所以我希望},在减去健康时保持原样。你会怎么做呢?

我之前尝试过的是重复一次':',根据生命值除以你的力量,但是'}'会遵循':'。我试图让一个for循环来重复空格 - 健康,然后打印出一个字符' '取决于应该有多少空间。但这些方法都没有奏效。

那么你如何用空格替换冒出的冒号以保持统一的长度。

1 个答案:

答案 0 :(得分:1)

您需要为每个强度点打印:,并用空格(容量)填充剩余部分。有几种方法。

方法1:循环

cout << '{';
for (unsigned int i = 0; i < capacity; ++i)
{
  if (i < strength)
  {
    cout << ':';
  }
  else
  {
    cout << ' ';
  }
}

方法2:重复字符串

const std::string strength_text(strength, ':');
const std::string filler_text(capacity-strength, ' ');
cout << '{';
cout << strength_text << filler_text;
cout << '}';

方法3:设置字段宽度

const std::string strength_text(strength, ':');
cout << '{';
cout << setw(capacity) << strength_text;
cout << '}';

您应该研究setw修饰符,看它是否执行右对齐或左对齐填充。

其他方法涉及光标定位,这需要一个外部库。