向C#中的文件写入一系列随机数不起作用。相同的号码被打印。我该如何解决该问题? [重复]

问题描述 投票:0回答:1

我试图将一系列数字(取决于用户指定的内容)写入文件,但是我的代码结果是每次循环执行时都打印相同的数字。这是我的代码:

private void saveButton_Click(object sender, EventArgs e)
        {
            // Get number for amount of random numbers to write
            int number = int.Parse(numberTextBox.Text);

            // Create a new saveFileDialog objects
            SaveFileDialog saveFileDialog = new SaveFileDialog();
            saveFileDialog.Title = "Choose where to save the file";
            saveFileDialog.Filter = "Text File | *.txt";

            if (saveFileDialog.ShowDialog() == DialogResult.OK)
            {
                StreamWriter writer = new StreamWriter(saveFileDialog.OpenFile());

                int randNum;
                Random random;
                // Create a for loop to write to file 
                for (int i = 0; i < number; i++)
                {
                    random = new Random();
                    randNum = random.Next(1, 101);
                    writer.WriteLine(randNum);
                }
                writer.Dispose();
            }
        }
``
c# random file-writing
1个回答
1
投票

此代码块对我有用:

根据您的需要进行编辑。如果需要进一步阐述。请参阅@Mike Perrenoud的阐述here

Random random = new Random();

Console.WriteLine("Please enter the name of the numbers file");
string fileLotto = Console.ReadLine();
//creating the lotto file
FileStream fs = new FileStream("../../" + fileLotto + ".txt", FileMode.OpenOrCreate, FileAccess.Write);
BufferedStream bs = new BufferedStream(fs);
Console.WriteLine("File created");
fs.Close();
StreamWriter sw = new StreamWriter("../.." + fileLotto + ".txt");

for(int i = 0; i < 6; i++)
{
    for(int j = 0; j < 7; j++)
    {
        //Console.Write(random.Next(1, 49));
        sw.Write(random.Next(1, 49) + " " );

    }
    sw.WriteLine();

}
sw.Close();
© www.soinside.com 2019 - 2024. All rights reserved.