随机输出6位数字,代码调试无任何数字输出到文本框

下面代码是随机输出6位数到文本框,可是C#调试时,点击按钮没用任何数据输出,请问哪位能指导下吗?
private List usedDigits = new List();

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        GenerateRandomDigits(5);
    }

    private void GenerateRandomDigits(int count)
    {
        usedDigits.Clear();

        for (int i = 0; i < count; i++)
        {
            int randomNumber = GenerateRandomSixDigitNumber();
            textBox1.AppendText(randomNumber.ToString() + Environment.NewLine);
        }
    }

    private int GenerateRandomSixDigitNumber()
    {
        Random random = new Random();
        int randomNumber;

        do
        {
            randomNumber = random.Next(1, 33); // Generate a random number between 1 and 32 (inclusive)    
        } while (usedDigits.Contains(randomNumber)); // Check if the number has been used before    

        usedDigits.Add(randomNumber); // Add the number to the list of used digits    

        return randomNumber;
    }
}

实测有输出,建议断点调试一下

【以下回答由 GPT 生成】

问题的根本在于代码中使用了cout来输出结果到控制台,而不是输出到文本框中。为了在文本框中输出结果,我们需要使用相应的GUI库来创建一个文本框,并将结果输出到该文本框中。

以下是对代码的修改,以使用Qt库来创建一个简单的GUI应用,并在文本框中显示随机生成的6位数字。

首先,确保你已经安装了Qt库,并且将以下代码保存在一个.cpp文件中。然后使用你喜欢的C++编译器编译并运行该代码。

#include <QApplication>
#include <QWidget>
#include <QVBoxLayout>
#include <QTextEdit>
#include <iostream>
#include <vector>
#include <random>

using namespace std;

class Form1 : public QWidget
{
private:
    vector<int> usedDigits;
    QTextEdit *textEdit;

public:
    Form1(QWidget *parent = nullptr) : QWidget(parent)
    {
        QVBoxLayout *layout = new QVBoxLayout(this);
        textEdit = new QTextEdit(this);
        layout->addWidget(textEdit);

        setLayout(layout);
    }

    void GenerateRandomDigits(int count)
    {
        usedDigits.clear();

        for (int i = 0; i < count; i++)
        {
            int randomNumber = GenerateRandomSixDigitNumber();
            textEdit->append(QString::number(randomNumber));
        }
    }

    int GenerateRandomSixDigitNumber()
    {
        random_device rd;
        mt19937 gen(rd());
        uniform_int_distribution<> dist(1, 999999);

        int randomNumber;

        do
        {
            randomNumber = dist(gen);
        } while (find(usedDigits.begin(), usedDigits.end(), randomNumber) != usedDigits.end());

        usedDigits.push_back(randomNumber);

        return randomNumber;
    }
};

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Form1 form;
    form.GenerateRandomDigits(5);
    form.show();

    return a.exec();
}

这个例子使用Qt库来创建一个继承自QWidget的类Form1作为GUI界面。在Form1中创建了一个QTextEdit对象textEdit,用于显示文本。

GenerateRandomDigits函数中,我们使用textEdit->append来将随机生成的数字追加到textEdit中。这样可以在运行时在文本框中显示输出结果。

main函数使用QApplication来初始化Qt应用和GUI事件循环,并显示Form1窗口。

注意:以上代码仅仅是一个简单的示例,你可以根据你的需求和使用的GUI库进行相应的修改。此外,对于真实的GUI应用程序,可能需要在其他地方生成随机数,并使用信号和槽机制更新文本框的内容。这里提供的示例只是演示如何在文本框中显示随机生成的6位数字。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^