从我的理解,setw(n)通过创建n个字符的宽度行为。另一方面,setfill('x')允许我们打印n个x字符。C++:setw和setfill行为不可预测
我试图让星两行,像这样:
**************************************
Woohoo stars!
**************************************
另外,我想在一个字符串的两侧创建长度相等的点的两行,像这样:
....................... TEAR HERE .......................
相反,我得到这样的:
Woohoo stars!
**************************************
.............. TEAR HERE .............................
为了实现这些目标,我使用下面的代码与#include<iomanip>
(注:这是正在打印到外部.txt文件):
//goal 1
outfile << setw(40)<<setfill('*') << endl;
outfile<< "Woohoo stars!" << endl;
outfile << setw(40)<<setfill('*') << endl;
//goal 2
outfile <<setfill('.')<< setw(30) " TEAR HERE " << setfill('.')<< setw(30) <<endl;
我试图扭转setw
和setfill
故意的顺序,但它造成了同样的效果编译完成后。此外,对于星形图案,由于某种原因,顶行甚至不会输出。最后,我确定要在一条新线上完成这些命令,所以不会有任何干扰他们线路的事情。
除非你需要额外的东西,否则不要使用'std :: endl'。 ''\ n''结束一行。 –