C++中单词之间的常量制表位

Constant Tabspace between words in C++

本文关键字:常量 单词 之间 C++      更新时间:2023-10-16

可能重复:
当打印cout<lt;

我正在一个输出文件中写一组单词。我在单词之间留了三个使用"\t"字符的制表位。但有时当单词太小或太大时,对齐似乎会出现问题。如何在单词之间留出一个恒定的空间,即使单词很小也能起作用?

以下是我所说的。

    Word:elpmas         Count:1
    Word:This           Count:4
    Word:pmasel         Count:1
    Word:is         Count:1
    Word:sample         Count:1
    Word:sentence           Count:1
    Word:si         Count:1
    Word:a          Count:1

我希望单词和计数之间有一个恒定的空格。我目前使用

cout<< "Word:"<< hash->key <<"ttt" << "Count:" << hash->value <<endl;

帮帮我。

setw流操纵器用于对齐表格输出中的列。例如,

cout << "Word:" << setw(15) << hash->key << " Count:" << hash->value << endl;

将正确对齐您的输出,前提是您的键最多为15个字符。

选项卡移动到特定的"固定列"位置。你的标签看起来像4个字符的标签停止

根据打印选项卡时所处的位置,从1到4个字符到下一个选项卡列的长度不等。

因此,在打印选项卡之前,您需要跟踪(或计算)当前位置。在您的情况下,看起来每一行都以"Word:"开头,在选项卡列中留下三个字符。因此,如果一个单词少于三个字符,就需要一个"额外的制表符"。

此外,如果一个单词的长度超过(3+4)7个字符,你需要少放一个标签

总之,如果你想通过使用制表符来控制代码的布局,你需要使用一个取决于单词宽度的可变数字。