整数到文本文件
ints into text file
我试图在文本文件中生成 4 个 4 位数字的随机数,但我唯一可以输入的只是引号中的文本。您还需要在文本框中输入地址,但这并不重要。我如何在该文件中键入多个整数?这是我尝试这样做的方法。
private void btnGenerate_Click(object sender, EventArgs e)
{
int i;
i = textboxMAIL.Text.Length;
if (i < 1)
{
MessageBox.Show("No address!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
MessageBox.Show("Successfully saved into psc.txt.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
Random r;
r = new Random();
int generate;
generate = r.Next(9999);
Random r2;
r2 = new Random();
int generate2;
generate2 = r2.Next(9999);
Random r3;
r3 = new Random();
int generate3;
generate3 = r3.Next(9999);
Random r4;
r4 = new Random();
int generate4;
generate4 = r4.Next(9999);
if (!File.Exists("c://desktop//psc.txt")) // If file does not exists
{
File.Create("c://desktop//psc.txt").Close(); // Create file
using (StreamWriter sw = File.AppendText("c://desktop//psc.txt"))
{
sw.WriteLine(generate, generate2, generate3, generate4); // Write text to .txt file
}
}
else // If file already exists
{
File.WriteAllText("c://desktop//psc.txt", String.Empty); // Clear file
using (StreamWriter sw = File.AppendText("c://desktop//psc.txt"))
{
sw.WriteLine(generate, generate2, generate3, generate4); // Write text to .txt file
}
}
}
}
勾选the documentation for StreamWriter.WriteLine
。您向它传递了 4 int
个值,但是该方法的任何版本都没有预期。该方法的第一个参数是要写入的字符串。
如果您想将每个值写在自己的行上,请将每个值转换为字符串并将其传递给方法:
sw.WriteLine(generate.ToString());
sw.WriteLine(generate2.ToString());
sw.WriteLine(generate3.ToString());
sw.WriteLine(generate4.ToString());
如果您希望它们都连接到同一行,第一个参数是带有格式占位符的字符串,其余参数是占位符的值:
sw.WriteLine("{0}{1}{2}{3}", generate, generate2, generate3, generate4);
或者使用更现代的语法,如果您使用的是更新的 C# 版本:
sw.WriteLine($"{generate}{generate2}{generate3}{generate4}");
还值得注意的是,您的随机数生成已损坏。您拥有的代码很可能每次都会产生 4 个相同的随机数。有关详细信息,请参阅 this question。简而言之,您应该使用 Random
的 one 实例并使用它来生成您需要的所有数字。
我试图在文本文件中生成 4 个 4 位数字的随机数,但我唯一可以输入的只是引号中的文本。您还需要在文本框中输入地址,但这并不重要。我如何在该文件中键入多个整数?这是我尝试这样做的方法。
private void btnGenerate_Click(object sender, EventArgs e)
{
int i;
i = textboxMAIL.Text.Length;
if (i < 1)
{
MessageBox.Show("No address!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
MessageBox.Show("Successfully saved into psc.txt.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
Random r;
r = new Random();
int generate;
generate = r.Next(9999);
Random r2;
r2 = new Random();
int generate2;
generate2 = r2.Next(9999);
Random r3;
r3 = new Random();
int generate3;
generate3 = r3.Next(9999);
Random r4;
r4 = new Random();
int generate4;
generate4 = r4.Next(9999);
if (!File.Exists("c://desktop//psc.txt")) // If file does not exists
{
File.Create("c://desktop//psc.txt").Close(); // Create file
using (StreamWriter sw = File.AppendText("c://desktop//psc.txt"))
{
sw.WriteLine(generate, generate2, generate3, generate4); // Write text to .txt file
}
}
else // If file already exists
{
File.WriteAllText("c://desktop//psc.txt", String.Empty); // Clear file
using (StreamWriter sw = File.AppendText("c://desktop//psc.txt"))
{
sw.WriteLine(generate, generate2, generate3, generate4); // Write text to .txt file
}
}
}
}
勾选the documentation for StreamWriter.WriteLine
。您向它传递了 4 int
个值,但是该方法的任何版本都没有预期。该方法的第一个参数是要写入的字符串。
如果您想将每个值写在自己的行上,请将每个值转换为字符串并将其传递给方法:
sw.WriteLine(generate.ToString());
sw.WriteLine(generate2.ToString());
sw.WriteLine(generate3.ToString());
sw.WriteLine(generate4.ToString());
如果您希望它们都连接到同一行,第一个参数是带有格式占位符的字符串,其余参数是占位符的值:
sw.WriteLine("{0}{1}{2}{3}", generate, generate2, generate3, generate4);
或者使用更现代的语法,如果您使用的是更新的 C# 版本:
sw.WriteLine($"{generate}{generate2}{generate3}{generate4}");
还值得注意的是,您的随机数生成已损坏。您拥有的代码很可能每次都会产生 4 个相同的随机数。有关详细信息,请参阅 this question。简而言之,您应该使用 Random
的 one 实例并使用它来生成您需要的所有数字。