首页 > 解决方案 > C++ 模板类根据主函数的调用打印字符串或 int 输出

问题描述

我需要编写一个名为 Pattern 的模板类,它根据来自 main 函数的调用打印 int 或字符串的行。RowInt 和 RowString 在非模板类中定义。

如何编写 RowInt、RowStr 类和模板类“Pattern”,使其能够识别需要生成哪一行,即带有字符串“*”的行或带有 int 1,2,3...的行。序列应该直到满足用户输入的数字才会生成。即如果用户输入 4,那么它应该为 Pattern mypattern(number) 打印 1 2 3 4;它应该为调用 Pattern mypattern(number); 打印 ****;请建议。

int main()
{
    int number = 0;

    do
    {
        cout << "Please input the number of rows (max 10:)" ;
        cin >> number;
    }
    while ((number < 1) || (number > 10))


    Pattern<RowStr> mypattern(number); //shows string * ,number of string will be equal to the number entered by the user
    Pattern<RowInt> mypattern(number);  //generates rows with numbers 1,2,3,4....untill the number entered by the user

我正在使用 Cygwin 运行这个程序。

标签: c++templates

解决方案


  class PatternString
  {
    private:
        typedef string strvalue;
        strvalue sstr;
    public:                                     
        PatternString(int num =0)   
        {

            for (int i = 1, k = 0; i <= num; ++i, k = 0)
            {
                for (int space = 1; space <= num - i; ++space)
                {
                    sstr += "  ";
                    cout<<"from firstloop"<< sstr<<endl;
                }
                while (k != 2 * i - 1)
                {
                    sstr += "X"; 
                    cout<<"from secondloop"<< sstr<<endl;
                    k++;
                }
            }
    }

    strvalue get_disc() const
    {
            return sstr;
    }
 };

正在给我一个输出,请。建议我哪里出错了。

X

 XXXX

   X  XXXXXXXX

     X    XXX  XXXXXXXXXXXX

       X      XXX    XXXXX  XXXXXXXXXXXXXXXX

我需要一个输出星形金字塔,在每次调用时生成一行并存储在字符串变量中,这个字符串变量将依次返回并存储在链表节点中


推荐阅读