猿问

如何做到通过文本框获取数据的int变量在txt日志文件中以双引号格式显示?

我尝试编写一个日志文件并创建了一个包含两个文本框和一个按钮的桌面应用程序。我希望 int 变量在 txt 文件中以双引号样式显示。我试图在赋值过程中将 $"{textBox1.Text}\"" 转换为 int 但无济于事 - 得到格式异常错误。那么如何在 txt 文件中将 int 变量显示为双标记?


string username =  $"\"{textBox1.Text}\"";

File.AppendAllText(@"C:\Users\Cavid\Desktop\LogFiles\" +DateTime.Now.ToString("dd.MM.yyyy") + ".txt", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() + " " +username+ " has typed as username \r\n");


int password = Convert.ToInt32($"\"{textBox1.Text}\"");

File.AppendAllText(@"C:\Users\Cavid\Desktop\LogFiles\"+DateTime.Now.ToString("dd.MM.yyyy") + ".txt", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() + " " +password+ " has typed as password\r\n");


蛊毒传说
浏览 188回答 3
3回答

幕布斯7119047

我只是想以双引号格式保留变量抱歉,您似乎对变量和数据类型的工作方式有错误的看法。整数变量只是一块没有引号或其他格式的 32 位内存。您根本无法将双引号文本分配或解析(没有自定义解析字符串)到整数。停止尝试。改用这个:if (int.TryParse(textBox1.Text, out int password)){    // text is a valid int, use `password`}

aluckdog

你真的想密码是整数而已?用户只允许有123密码,但不能,比如说,a;sldf123_'vdkdm?更自然的选择是获取密码(让它在textBox2.Text),因为它是: string fileName = Path.Combine(   @"C:\Users\Cavid\Desktop\LogFiles",             // Directory   $"{DateTime.Now.ToString("dd.MM.yyyy")}.txt");  // File Name // Do not call DateTime.Now twice: you may have different times for username and password DateTime moment = DateTime.Now; string prefix = $"{moment.ToShortDateString()} {moment.ToShortDateString()}";  // It seems you want textBox2.Text, not textBox1.Text as a password (typo?)  string[] lines = new string[] {   $"{prefix} \"{textBox1.Text}\" has typed as username",   $"{prefix} \"{textBox2.Text}\" has typed as password", }; // Append file once File.AppendAllLines(fileName, lines);如果您坚持只使用整数作为密码,请添加int.Parse或int.TryParse: ... string[] lines = new string[] {   $"{prefix} \"{textBox1.Text}\" has typed as username",   $"{prefix} \"{int.Parse(textBox2.Text)}\" has typed as password", }; ...

心有法竹

要添加双引号,请使用以下代码:字符串用户名 = textBox1.Text; //添加双引号        username = "\"" + username + "\"";         //you can test it as shown belowFile.WriteAllText(@"C:\text2.txt", 用户名);对于错误,正如其他人提到的那样,您无法将所有 string s 转换为整数(例如,如果您的用户名是字母数字)
随时随地看视频慕课网APP
我要回答