文本框.文本不会显示所需的输出
本文关键字:文本 输出 显示 | 更新日期: 2023-09-27 18:18:32
我得到了一个制作凯撒密码的项目。我被困在textBox2。文本,即不显示加密文本。
请查看我的代码和指南,我将非常感谢满!
请告诉我,如果有其他错误在我的代码,那将是非常好的。
{
key = int.Parse(textBox3.Text) - 48;
// Input.ToLower();
int size = Input.Length;
char[] value = new char[size];
char[] cipher = new char[size];
for (int i = 0; i < size; i++)
{
value[i] = Convert.ToChar(Input.Substring(i, 1));
}
for (int re = 0; re < size; re++)
{
int count = 0;
int a = Convert.ToInt32(value[re]);
for (int y = 1; y <= key; y++)
{
if (count == 0)
{
if (a == 90)
{ a = 64; }
else if (a == 122)
{ a = 96; }
cipher[re] = Convert.ToChar(a + y);
count++;
}
else
{
int b = Convert.ToInt32(cipher[re]);
if (b == 90)
{ b = 64; }
else if (b == 122)
{ b = 96; }
cipher[re] = Convert.ToChar(b + 1);
}
}
}
string ciphertext = "";
for (int p = 0; p < size; p++)
{
ciphertext = ciphertext + cipher[p].ToString();
}
ciphertext.ToUpper();
textBox2.Text = ciphertext;
}
这很可疑:
key = int.Parse(textBox3.Text) - 48;
48是一个没有解释的神奇数字。大概你用它是因为它是'0'
的ASCII码。但是int.Parse
不返回ASCII码。
您可以(仅)使用int.Parse
,或者获取文本框中第一个字符的ASCII码并对字符代码进行算术。但是把这些组合起来是不正确的。
-
key = int.Parse(textBox3.Text);
或
-
key = textBox3[0] - '0';
由于当前代码将key
设置为负数,因此内部for( y = 1; y <= key; y++ )
循环立即退出(零迭代)。