C++ cli C++/CLL -旋转文本

C++ cli C++/CLL -旋转文本,c++-cli,spinner,C++ Cli,Spinner,我有像这样的文字 我{爱|享受{喜欢{阅读|发布}{堆叠|堆叠}。{:D |: |^^{他们{是{论坛}董事会}{董事会{论坛}bbs} 提供{免费|很棒|信息动态|新}{指南|想法|教程|帖子} 还有{工具|下载|书籍} 字符串^Szablon 并希望从中生成文本 我写了一个代码: while ((str = din->ReadLine()) != nullptr) //read from the file { int rndInt; tekst

我有像这样的文字

我{爱|享受{喜欢{阅读|发布}{堆叠|堆叠}。{:D |: |^^{他们{是{论坛}董事会}{董事会{论坛}bbs} 提供{免费|很棒|信息动态|新}{指南|想法|教程|帖子} 还有{工具|下载|书籍}

字符串^Szablon 并希望从中生成文本

我写了一个代码:

 while ((str = din->ReadLine()) != nullptr)  //read from the file
  {

        int rndInt;
        tekst=Szablon;

        int i=0;

        while (i<5){

        Regex^ spin = gcnew Regex("{[^{}]*}");
        String^ delimStr = "|";
        Match^ m = spin->Match(tekst);

        if ( m->Success ) 
             {
                array<Char>^ delimiter = delimStr->ToCharArray( );
                array<String^>^ words;  
                words = m->Value->Split( delimiter );
                words[0] = words[0]->Replace("{","");
                words[words->Length-1] = words[words->Length-1]->Replace("}","");
                Random^ r = gcnew Random();

                int x=r->Next(0,words->Length);
                String^ aktualny=words[x];
                tekst = tekst->Replace(m->Value,aktualny);

            }       
            else {i=8;}

        }


        MessageBox::Show(tekst);}

它是有效的,但它始终会生成相同的结果

我们希望您在代码中的某个地方使用str。也许你会先删除萨布隆,不管它是什么意思。并使用tekst=str;这只是代码的一部分,str在这里并不重要。如果我做其他循环文本,它会一直给我相同的结果。您需要将随机对象移出此代码,它需要作为字段存储在出现此代码的类中。按照您现在使用它的方式,它会根据当前时间不断使用相同的种子重新初始化,因此很可能会不断生成相同的随机数。时间仅以15.6毫秒的间隔变化。只创建一次,必要时将其设置为静态。您有该类的示例吗?