C++ 在Linux控制台中打印填充和空方块会产生垃圾字符
我试图解决编程挑战。 基本上,我已经用普通字符解决了问题的本质,例如执行C++ 在Linux控制台中打印填充和空方块会产生垃圾字符,c++,linux,string,character-encoding,C++,Linux,String,Character Encoding,我试图解决编程挑战。 基本上,我已经用普通字符解决了问题的本质,例如执行zoom(7)returns 0000000 0xxxxx0 0x000x0 0x0x0x0 0x000x0 0xxxxx0 0000000 这是正确的模式 但是,作为额外的困难,字符必须是空的正方形□位于0和填充的■位于x的位置 如果我尝试替换这些字符,结果是 □□□□□□□��□□□□ �■■■■■□□□□□��□□□□ ��□□□��■■■□□□□□��□□□□ ���■�□□��■■■□□□□□��□□□□ ��□
zoom(7)
returns
0000000
0xxxxx0
0x000x0
0x0x0x0
0x000x0
0xxxxx0
0000000
这是正确的模式
但是,作为额外的困难,字符必须是空的正方形□代码>位于0
和填充的■
位于x
的位置
如果我尝试替换这些字符,结果是
□□□□□□□��□□□□
�■■■■■□□□□□��□□□□
��□□□��■■■□□□□□��□□□□
���■�□□��■■■□□□□□��□□□□
��□□□��■■■□□□□□��□□□□
�■■■■■□□□□□��□□□□
□□□□□□□��□□□□
我不知道是什么原因导致了这个问题,如果控制台不能打印这样的方块,或者我在打印浮动时是否需要一些额外的规格,或者其他什么。我尝试按照中的建议定义平方,但没有任何改变
这是返回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;
}
#包括
#包括
int main(){
std::string res;
std::字符串prim;
std::字符串秒;
//~prim=“x”//填充正方形
//~sec=“0”//空方块
普里姆=”■"; // 填充正方形
秒=”□“;//空方块
res+=秒;res+=秒;res+=秒;res+=“\n”;
res+=sec;res+=prim;res+=sec;res+=“\n”;
res+=秒;res+=秒;res+=秒;res+=“\n”;
Std::Cube欢迎堆栈溢出。请花时间阅读和参考您在这里所问的内容和如何使用。我猜您需要使用<代码> STD::WScGe> <代码>和 STD::WcOUT
,并且以适当的C++格式为字符格式化Unicode字符串。