跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
C Sharp 输入输出
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
= C#输入输出 = '''输入输出'''(Input/Output,简称I/O)是编程中的核心概念之一,它允许程序与用户或其他系统进行交互。在C#中,输入输出通常涉及从控制台读取用户输入、向控制台输出信息、以及处理文件或网络数据流。本文将详细介绍C#中的基本输入输出操作,包括控制台I/O、文件I/O以及一些实际应用案例。 == 控制台输入输出 == 控制台输入输出是最基础的交互方式,C#通过'''System.Console'''类提供了简单的方法来实现。 === 控制台输出 === 使用'''Console.WriteLine()'''或'''Console.Write()'''可以向控制台输出信息。两者的区别在于'''WriteLine'''会在输出后自动换行,而'''Write'''不会。 <syntaxhighlight lang="csharp"> // 示例:控制台输出 Console.WriteLine("Hello, World!"); // 输出并换行 Console.Write("Enter your name: "); // 输出不换行 </syntaxhighlight> '''输出结果:''' <pre> Hello, World! Enter your name: </pre> === 控制台输入 === 使用'''Console.ReadLine()'''可以读取用户输入的一行文本,而'''Console.Read()'''读取单个字符(返回ASCII码值)。 <syntaxhighlight lang="csharp"> // 示例:控制台输入 Console.Write("Enter your name: "); string name = Console.ReadLine(); // 读取一行输入 Console.WriteLine($"Hello, {name}!"); // 输出结果 </syntaxhighlight> '''输入及输出结果:''' <pre> Enter your name: Alice Hello, Alice! </pre> === 格式化输出 === C#支持使用'''字符串插值'''或'''Console.WriteLine()'''的格式化参数来输出格式化的文本。 <syntaxhighlight lang="csharp"> // 示例:格式化输出 int age = 25; Console.WriteLine("Name: {0}, Age: {1}", name, age); // 使用占位符 Console.WriteLine($"Name: {name}, Age: {age}"); // 使用字符串插值 </syntaxhighlight> '''输出结果:''' <pre> Name: Alice, Age: 25 Name: Alice, Age: 25 </pre> == 文件输入输出 == C#通过'''System.IO'''命名空间提供了文件操作功能,包括读取和写入文件。 === 写入文件 === 使用'''File.WriteAllText()'''或'''StreamWriter'''类可以将数据写入文件。 <syntaxhighlight lang="csharp"> // 示例:写入文件 string filePath = "example.txt"; File.WriteAllText(filePath, "This is a sample text."); // 覆盖写入 // 使用 StreamWriter 追加内容 using (StreamWriter writer = new StreamWriter(filePath, append: true)) { writer.WriteLine("Appended line."); } </syntaxhighlight> '''文件内容:''' <pre> This is a sample text. Appended line. </pre> === 读取文件 === 使用'''File.ReadAllText()'''或'''StreamReader'''类可以读取文件内容。 <syntaxhighlight lang="csharp"> // 示例:读取文件 string content = File.ReadAllText(filePath); Console.WriteLine(content); </syntaxhighlight> '''输出结果:''' <pre> This is a sample text. Appended line. </pre> == 实际应用案例 == === 案例1:用户注册信息保存 === 以下示例演示如何从控制台获取用户输入并保存到文件。 <syntaxhighlight lang="csharp"> // 示例:用户注册信息保存 Console.Write("Enter username: "); string username = Console.ReadLine(); Console.Write("Enter password: "); string password = Console.ReadLine(); // 保存到文件 string userData = $"Username: {username}, Password: {password}"; File.WriteAllText("userdata.txt", userData); Console.WriteLine("Registration successful!"); </syntaxhighlight> '''运行结果:''' <pre> Enter username: Bob Enter password: 12345 Registration successful! </pre> '''文件内容:''' <pre> Username: Bob, Password: 12345 </pre> === 案例2:日志记录系统 === 以下示例展示了一个简单的日志记录系统,将程序运行信息写入日志文件。 <syntaxhighlight lang="csharp"> // 示例:日志记录系统 void LogMessage(string message) { string logPath = "app.log"; string timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); using (StreamWriter writer = new StreamWriter(logPath, append: true)) { writer.WriteLine($"[{timestamp}] {message}"); } } LogMessage("Application started"); LogMessage("User logged in"); </syntaxhighlight> '''日志文件内容:''' <pre> [2023-10-01 14:30:00] Application started [2023-10-01 14:30:05] User logged in </pre> == 高级主题:异步I/O == 对于高性能应用,C#提供了异步I/O操作(如'''File.ReadAllTextAsync()'''和'''StreamWriter.WriteLineAsync()'''),以避免阻塞主线程。 <syntaxhighlight lang="csharp"> // 示例:异步文件读取 async Task<string> ReadFileAsync(string path) { return await File.ReadAllTextAsync(path); } // 调用异步方法 string fileContent = await ReadFileAsync("example.txt"); Console.WriteLine(fileContent); </syntaxhighlight> == 总结 == C#提供了丰富的输入输出功能,包括: * 控制台I/O('''Console'''类) * 文件I/O('''System.IO'''命名空间) * 异步I/O(提高性能) 通过合理使用这些功能,可以构建交互式应用程序或高效处理文件数据。初学者应优先掌握控制台和文件I/O,而高级用户可进一步学习异步I/O和流处理。 [[Category:编程语言]] [[Category:C Sharp]] [[Category:C Sharp 基础]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)