C# 中,获取用户输入和输出信息可以通过控制台(Console)来完成。可以使用 Console.ReadLine() 来获取用户输入,使用 Console.WriteLine() 来输出信息。本文主要介绍C# 中使用Console类获取用户输入和输出信息的方法,以及相关示例代码。

1、Console类

C# Console 类主要用于控制台应用程序的输入和输岀操作。

常用方法如下:

方法

描述

Console.Write()

向控制台输出内容后不换行

Console.WriteLine()

向控制台输出内容后换行

Console.Read()

从控制台上读取一个字符

Console.ReadLine()

从控制台上读取一行字符

2、使用获取用户输入和输出信息

Console.Write()Console.WriteLine()用于输出(打印)值的方法。用于 Console.Read()Console.ReadLine()获取用户输入。

Console.Read()Console.ReadLine()方法返回一个string。即使用户输入数字,也直接返回的是字符串。例如,

//int age = Console.ReadLine();这样写会报错
string age= Console.ReadLine();//正确写法
Console.WriteLine("请输入name:");
string name = Console.ReadLine();
Console.WriteLine("请输入school :");
string school = Console.ReadLine();
Console.WriteLine("{0}=>>{1}", name, school);

注意:在格式化字符串中使用{索引号}的形式,索引号从 0 开始。输出项 1 填充 {0} 位置的内容,依此类推。

3、使用示例

使用 Console.ReadLine() 从控制台获取用户输入。返回的值是一个字符串,可以根据需要将它转换为其他数据类型(例如整数、浮点数等)。使用 Console.WriteLine() 向控制台输出信息。在获取数字时,可以使用 int.TryParse() 方法来确保输入是一个有效的整数,并进行错误处理。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
              // 输出信息提示用户输入
              Console.WriteLine("请输入你的名字:");

              // 获取用户输入
              string userName = Console.ReadLine();

              // 输出用户输入的内容
              Console.WriteLine("你好, " + userName + "!");

              // 输出提示信息,要求用户输入一个数字
              Console.WriteLine("请输入一个数字:");

              // 获取用户输入的数字并将其转换为整数
              string input = Console.ReadLine();
              int number;
              if (int.TryParse(input, out number))
              {
                  Console.WriteLine("你输入的数字是: " + number);
              }
              else
              {
                  Console.WriteLine("无效的数字!");
              }
        }
    }
}

4、设置文本颜色

可以通过 Console.ForegroundColor 来设置文本的前景色(文字颜色),以及通过 Console.BackgroundColor 设置背景色。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
             // 设置前景色为绿色
             Console.ForegroundColor = ConsoleColor.Green;
             Console.WriteLine("这是一行绿色的文字。");

             // 设置背景色为黑色,前景色为白色
             Console.BackgroundColor = ConsoleColor.Black;
             Console.ForegroundColor = ConsoleColor.White;
             Console.WriteLine("背景是黑色,文字是白色。");

             // 重置为默认颜色
             Console.ResetColor();
             Console.WriteLine("颜色已重置为默认。");
        }
    }
}

5、使用不同的输出格式

除了颜色,还可以使用字符串格式化来设置输出样式。比如,可以在输出时调整文本对齐、数字格式、日期格式等。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
              // 使用格式化字符串
              string name = "Alice";
              int age = 30;
              decimal balance = 12345.67M;
              
              // 格式化输出
              Console.WriteLine("姓名: {0}, 年龄: {1}, 账户余额: {2:C}", name, age, balance);
        }
    }
}

6、设置输出的宽度和对齐

可以使用 PadLeftPadRight 方法来设置文本的对齐和宽度,或者在 WriteLine 中直接指定宽度。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
              // 使用 PadLeft 来填充空白,使文本右对齐
             Console.WriteLine("右对齐:" + "123".PadLeft(10)); 
             // "      123"
             
             // 使用 PadRight 来填充空白,使文本左对齐
             Console.WriteLine("左对齐:" + "123".PadRight(10));
             // "123      "
             
             // 使用格式化输出控制对齐
             Console.WriteLine("{0,-10} {1,5}", "Name", "Age"); 
             // 左对齐Name,右对齐Age
             Console.WriteLine("{0,-10} {1,5}", "Alice", 30);  
             // 输出: Alice     30
        }
    }
}

7、设置控制台窗口大小和光标位置

还可以设置控制台窗口的大小以及光标的位置,适用于一些特定场景,比如动态更新界面。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
              // 设置控制台窗口的宽度和高度
              Console.SetWindowSize(100, 30);
      
              // 设置光标位置
              // 设置光标到指定位置
              Console.SetCursorPosition(10, 5); 
      
              Console.WriteLine("光标已移动到 (10, 5) 位置");
      
              // 暂停,查看效果
              Console.ReadKey();
        }
    }
}

8、处理多行输出和格式化

在复杂的输出中,使用多行和适当的格式化有助于输出内容的易读性。如在表格或多列数据的输出中,可以结合 string.Format 或直接使用占位符进行布局。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
 
            // 输出表头
            Console.WriteLine("{0,-10} {1,-10} {2,10}", "Name", "Age",
            "Salary");
            Console.WriteLine(
              "----------------------------------------");
  
            // 输出数据
            Console.WriteLine("{0,-10} {1,-10} {2,10:C}", "Alice", 30,
            50000);
            Console.WriteLine("{0,-10} {1,-10} {2,10:C}", "Bob", 40,
            60000);
            Console.WriteLine("{0,-10} {1,-10} {2,10:C}", "Charlie",
            35, 70000);
        }
    }
}

推荐文档