下面代码是随机输出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位数字。
【相关推荐】