我的使用System.IO.StreamWriter的C#代码以一定长度输出随机的中文/ Unicode字符

问题描述 投票:-1回答:1

我一直在尝试编写代码以将3中的所有素数输出到文档中(使用System.IO.StreamWriter)以及控制台。这是我写的代码:

int limit

[使用using System; using System.IO; namespace primes { class Program { static void Main(string[] args) { string output = ""; a: Console.Write("Numbers to test >> "); string limitStr = Console.ReadLine(); int limit = Convert.ToInt32(limitStr); if (limit < 3) { Console.WriteLine("Write an integer above 2.\n"); goto a; } DateTime start = DateTime.Now; for (int i = 0; i < limit; i++) { for (int j = 2; j < i; j++) { if (j == Math.Ceiling(Convert.ToDouble(i / 2)) + 1) { Console.WriteLine(i + " is prime."); output += Convert.ToString(Convert.ToString(i) + "\n"); } else if (i % j == 0) { goto b; } } b:; } using (System.IO.StreamWriter sw = new StreamWriter("primes.txt")) { sw.Write(output); } string timeElapsed = Convert.ToString((DateTime.Now - start).TotalSeconds); Console.Write("\nTook " + timeElapsed + " seconds to run."); ConsoleKeyInfo k; Console.WriteLine("\nPress ESC to exit..."); while (true) { k = Console.ReadKey(true); if (k.Key == ConsoleKey.Escape) break; } } } } 时,我在文本文档中得到了此输出:

int limit = 50

但是当3 5 7 11 13 17 19 23 29 31 37 41 43 47 时,它输出:

int limit = 1260

此行话继续以越来越大的数字,更多的字符,有时在文本中出现一小段样式。我究竟做错了什么?在控制台中看起来还不错。

信息:使用Visual Studio Community 2019编辑

使用Windows 10 Home Notepad.exe访问ਲ਼ਵ਷ㄱㄊਲ਼㜱ㄊਹ㌲㈊ਹㄳ㌊਷ㄴ㐊ਲ਼㜴㔊ਲ਼㤵㘊਱㜶㜊਱㌷㜊ਹ㌸㠊ਹ㜹ㄊ㄰ㄊ㌰ㄊ㜰ㄊ㤰ㄊ㌱ㄊ㜲ㄊㄳㄊ㜳ㄊ㤳ㄊ㤴ㄊㄵㄊ㜵ㄊ㌶ㄊ㜶ㄊ㌷ㄊ㤷ㄊㄸㄊㄹㄊ㌹ㄊ㜹ㄊ㤹㈊ㄱ㈊㌲㈊㜲㈊㤲㈊㌳㈊㤳㈊ㄴ㈊ㄵ㈊㜵㈊㌶㈊㤶㈊ㄷ㈊㜷㈊ㄸ㈊㌸㈊㌹㌊㜰㌊ㄱ㌊㌱㌊㜱㌊ㄳ㌊㜳㌊㜴㌊㤴㌊㌵㌊㤵㌊㜶㌊㌷㌊㤷㌊㌸㌊㤸㌊㜹㐊㄰㐊㤰㐊㤱㐊ㄲ㐊ㄳ㐊㌳㐊㤳㐊㌴㐊㤴㐊㜵㐊ㄶ㐊㌶㐊㜶㐊㤷㐊㜸㐊ㄹ㐊㤹㔊㌰㔊㤰㔊ㄲ㔊㌲㔊ㄴ㔊㜴㔊㜵㔊㌶㔊㤶㔊ㄷ㔊㜷㔊㜸㔊㌹㔊㤹㘊㄰㘊㜰㘊㌱㘊㜱㘊㤱㘊ㄳ㘊ㄴ㘊㌴㘊㜴㘊㌵㘊㤵㘊ㄶ㘊㌷㘊㜷㘊㌸㘊ㄹ㜊㄰㜊㤰㜊㤱㜊㜲㜊㌳㜊㤳㜊㌴㜊ㄵ㜊㜵㜊ㄶ㜊㤶㜊㌷㜊㜸㜊㜹㠊㤰㠊ㄱ㠊ㄲ㠊㌲㠊㜲㠊㤲㠊㤳㠊㌵㠊㜵㠊㤵㠊㌶㠊㜷㠊ㄸ㠊㌸㠊㜸㤊㜰㤊ㄱ㤊㤱㤊㤲㤊㜳㤊ㄴ㤊㜴㤊㌵㤊㜶㤊ㄷ㤊㜷㤊㌸㤊ㄹ㤊㜹ㄊ〰ਹ〱㌱ㄊ㄰ਹ〱ㄲㄊ㌰਱〱㌳ㄊ㌰ਹ〱㤴ㄊ㔰਱〱ㄶㄊ㘰ਲ਼〱㤶ㄊ㠰਷〱ㄹㄊ㤰ਲ਼〱㜹ㄊ〱ਲ਼ㄱ㤰ㄊㄱ਷ㄱ㌲ㄊ㈱ਹㄱㄵㄊ㔱ਲ਼ㄱ㌶ㄊ㜱਱ㄱㄸㄊ㠱਷ㄱ㌹ㄊ〲਱㈱㌱ㄊㄲ਷㈱㌲ㄊ㈲ਹ㈱ㄳㄊ㌲਷㈱㤴ㄊ㔲ਹ

c# math primes streamwriter
1个回答
0
投票

您需要在StreamWriter输出到文本文件上指定文本编码类型。

替换:

primes.txt

with

using (System.IO.StreamWriter sw = new StreamWriter("primes.txt"))
© www.soinside.com 2019 - 2024. All rights reserved.