【发布时间】:2016-12-01 14:29:04
【问题描述】:
我需要使用StreamWriter 来写入/存储用户输入的信息。我已经使用下面的代码完成了这项工作。
我现在需要让它用用户的名字写一个文件,并将信息存储在那里。
隐藏展开复制代码
case 2: //enter new user
//Enter new user information and add them to file
Console.Write("Please Enter the number of users you wish to log: ");
iUserNumber = Convert.ToInt32(Console.ReadLine());
//open file for writing, in APPEND mode
using (StreamWriter sw = new StreamWriter("NewUser" +sName,".txt", true))
{
//loop for each user
for (iCount = 1; iCount <= iUserNumber; iCount++)
{
// enter details
Console.Write("Please Enter your Name" + iCount + ": ");
sName = Console.ReadLine();
Console.Write("Please Enter the Name of your School: ");
sSchoolName = Console.ReadLine();
Console.WriteLine();
Console.Write("Please Enter the Name of your Class: ");
sClassName = Console.ReadLine();
// write to file
sw.WriteLine(sName);
Console.WriteLine();
sw.WriteLine(sSchoolName);
Console.WriteLine();
sw.WriteLine(sClassName);
Console.WriteLine("User data entered: ");
}
}
我似乎无法让它工作并不断出现这些错误:
参数 1:不能从 'string' 转换为 'System.IO.Stream' FUNCOCO2
错误 CS0165 使用未分配的局部变量 'sName' FUNCOCO2
错误 CS1503 参数 2:无法从“字符串”转换为 'System.Text.Encoding'
我不知道如何解决这个问题。
我改成这样了:
case 2: //enter new user
//Enter new user information and add them to file
Console.Write("Please Enter the number of users you wish to log: ");
iUserNumber = Convert.ToInt32(Console.ReadLine());
//enter first name
Console.WriteLine("Please enter your first Name: ");
sFirstName = Convert.ToString(Console.ReadLine());
//open file for writing, in APPEND mode
using (StreamWriter sw = new StreamWriter(sName))
{
//loop for each user
for (iCount = 1; iCount <= iUserNumber; iCount++)
{
// enter details
Console.Write("Please Enter your Name" + iCount + ": ");
sLastName = Console.ReadLine();
Console.Write("Please Enter the Name of your School: ");
sSchoolName = Console.ReadLine();
Console.WriteLine();
Console.Write("Please Enter the Name of your Class: ");
sClassName = Console.ReadLine();
// write to file
sw.WriteLine(sName);
Console.WriteLine();
sw.WriteLine(sSchoolName);
Console.WriteLine();
sw.WriteLine(sClassName);
Console.WriteLine("User data entered: ");
}
}
这似乎也不起作用。
【问题讨论】:
-
And that doesn't seem to work either. -
听起来您想为每个用户创建一个新文件,但您只打开一次文件 - 在循环之外。在您最初的“尝试”中,您还错误地在
new StreamWriter("NewUser" +sName,".txt", true)中使用了逗号而不是字符串连接。由于构造函数没有这样的重载,因此您会遇到一些令人困惑的错误。
标签: c#