在Linux控制台中打印填充和空方格会生成垃圾字符

时间:2017-05-25 21:07:01

标签: c++ linux string character-encoding

我正在尝试解决定义的here编程挑战。 基本上,我用普通字符解决了问题的本质,例如执行zoom(7)返回

0000000
0xxxxx0
0x000x0
0x0x0x0
0x000x0
0xxxxx0
0000000

这是正确的模式。

但是,作为额外的难度,字符必须是处的空方0处的填充x

如果我尝试替换那些我得到的字符

□□□□□□□��□□□□
�■■■■■□□□□□��□□□□
��□□□��■■■□□□□□��□□□□
���■�□□��■■■□□□□□��□□□□
��□□□��■■■□□□□□��□□□□
�■■■■■□□□□□��□□□□
□□□□□□□��□□□□

我不知道导致问题的原因,如果控制台无法打印这样的方块,或者在打印浮动时需要一些额外的规格,或者其他什么。我尝试按here中的建议定义平方,但没有任何改变。

这是返回3x3解决方案的基本示例

#include <iostream>
#include <string>

int main() {
    std::string res;

    std::string prim;
    std::string sec;

        //~ prim = "x";         // filled square
        //~ sec = "0";          // empty square

        prim = "■";         // filled square
        sec = "□";          // empty square

    res += sec; res += sec; res += sec; res += "\n";
    res += sec; res += prim; res += sec; res += "\n";
    res += sec; res += sec; res += sec; res += "\n";

    std::cout << res;

    return 0;   
}

0 个答案:

没有答案