我需要展示一些看起来像:
/
-
/
/
-
/
/
/
-我目前有以下内容,它不能正确地打印斜杠。
for (int i = 1; i <= numberOfDolls; i++) {
for(int j = 1; j <= i; j++)
cout << setw(numberOfDolls) << '/' << endl;
cout << "-" << endl;
}我正在考虑使用setw()来增加斜杠。这个是可能的吗?
发布于 2022-01-20 10:10:32
我不确定你的怀疑,但你会得到预期的输出使用以下:
for (int i = 1; i <= numberOfDolls; i++) {
for(int j = 1, n=numberOfDolls; j <= i; j++)
cout << setw(n--) << '/' << endl;
cout <<setw(numberOfDolls-1)<< "-" << endl;
}发布于 2022-01-20 10:10:17
为此,您可以使用std::setw(.)。关键是要有一个参数来定义移位。下面是实现它的代码。如果您想稍微修改图像,则可以进行简单的修改。
#include <iostream>
#include <iomanip>
int main() {
int numberOfDolls = 3;
int shift = numberOfDolls + 2;
for (int i = 1; i <= numberOfDolls; i++) {
for(int j = 0; j < i; j++) {
std::cout << std::setw(shift) << '/' << std::endl;
shift--;
}
shift++;
std::cout << std::setw(shift) << "-" << std::endl;
}
return 0;
}然而,使用std::setw(.)似乎是过头了。在我看来,最好只是添加空格,例如:
#include <iostream>
#include <iomanip>
#include <string>
int main() {
int numberOfDolls = 3;
int shift = numberOfDolls + 1;
for (int i = 1; i <= numberOfDolls; i++) {
for(int j = 0; j < i; j++) {
std::cout << std::string(shift, ' ') << '/' << std::endl;
shift--;
}
shift++;
std::cout << std::string(shift, ' ') << "-" << std::endl;
}
return 0;
}输出
/
-
/
/
-
/
/
/
-https://stackoverflow.com/questions/70781863
复制相似问题