我从来没有在控制台应用程序中遇到过这样的问题——我听到一些相当可怕的哔哔声,程序(和我的电脑)瞬间冻结,然后控制台停止工作——它甚至不打印错误消息。
我有这个文本文件。我将其阅读如下,然后将数字拆分为一个列表:
string path = @"C:\Users\owner\Documents\Quick Access\cipher1.txt";
string data = "";
using (StreamReader sr = new StreamReader(path))
{
data = sr.ReadToEnd();
}
List<int> encryptedNums = new List<int>();
foreach (string s in data.Split(','))
{
encryptedNums.Add(Convert.ToInt32(s));
}
每个数字代表一个 ASCII 字符。我想将这些数字连接成一个字符串:
string encryptedString = "";
//WTF????
foreach (int n in encryptedNums)
{
encryptedString += (char)n;
}
该foreach
循环导致一些非常奇怪的转换。通过将字符一个一个打印出来并与ASCII 表进行比较,我看到结果肯定不匹配 - 例如,数字 2 导致一个笑脸类型的数字。其中一种转换会产生哔哔声。
这才是真正困扰我的地方。我有一个单独的方法,我基本上做同样的事情 - 我有一个整数列表,我尝试将它们转换为字符串:
string s = "";
foreach (int n in decrypted)
{
s += (char)n;
}
但这实际上会产生正确的字符串!我看不到我的错误在哪里,为什么第一次转换失败,而第二次转换(除非我遗漏了什么,代码是一样的)很好。
我会很感激任何帮助。
最终导致崩溃的代码是正在打印encryptedString
。