首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以增加setw?

是否可以增加setw?
EN

Stack Overflow用户
提问于 2022-01-20 06:51:06
回答 2查看 120关注 0票数 4

我需要展示一些看起来像:

代码语言:javascript
复制
     /
    -
    /
   /
    -
    /
   /
  /
   -

我目前有以下内容,它不能正确地打印斜杠。

代码语言:javascript
复制
for (int i = 1; i <= numberOfDolls; i++) {
   for(int j = 1; j <= i; j++) 
      cout << setw(numberOfDolls) << '/' << endl;
      
      cout << "-" << endl;
    }

我正在考虑使用setw()来增加斜杠。这个是可能的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-20 10:10:32

我不确定你的怀疑,但你会得到预期的输出使用以下:

代码语言:javascript
复制
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;
    }
票数 2
EN

Stack Overflow用户

发布于 2022-01-20 10:10:17

为此,您可以使用std::setw(.)。关键是要有一个参数来定义移位。下面是实现它的代码。如果您想稍微修改图像,则可以进行简单的修改。

代码语言:javascript
复制
#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(.)似乎是过头了。在我看来,最好只是添加空格,例如:

代码语言:javascript
复制
#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;
}

输出

代码语言:javascript
复制
    /
    -
    /
   /
   -
   /
  /
 /
 -
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70781863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档