📜  C#基本输入和输出

📅  最后修改于: 2020-10-06 09:23:31             🧑  作者: Mango

在本教程中,我们将学习如何从用户那里获取输入并使用各种方法在C#中显示输出

C#输出

为了在C#中输出内容,我们可以使用

System.Console.WriteLine() OR
System.Console.Write()

在这里, System是名称空间, Console是名称空间System的类,而WriteLineWriteConsole类的方法。

让我们看一个简单的示例,该示例将字符串输出到输出屏幕。

示例1:使用WriteLine()打印字符串

using System;
 
namespace Sample
{
    class Test
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("C# is cool");
        }
    }
}

当我们运行程序时,输出将是

C# is cool

WriteLine()和Write()方法之间的区别

WriteLine()Write()之间的主要区别是Write()方法仅打印提供给它的字符串 ,而WriteLine()方法则打印该字符串并移至下一行的开头。

让我们看下面的示例,了解这些方法之间的区别。

示例2:如何使用WriteLine()和Write()方法?
using System;
 
namespace Sample
{
    class Test
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Prints on ");
            Console.WriteLine("New line");

            Console.Write("Prints on ");
            Console.Write("Same line");
        }
    }
}

当我们运行程序时,输出将是

Prints on
New line
Prints on Same line

使用WriteLine()和Write()打印变量和字面量

WriteLine()Write()方法可用于打印变量和字面量。这是一个例子。

示例3:打印变量和字面量
using System;
 
namespace Sample
{
    class Test
    {
        public static void Main(string[] args)
        {
            int value = 10;

            // Variable
            Console.WriteLine(value);
            // Literal
            Console.WriteLine(50.05);
        }
    }
}

当我们运行程序时,输出将是

10
50.05

使用+ 运算符组合(连接)两个字符串并打印

在打印时,可以使用+ 运算符对字符串进行合并/连接。

示例4:使用+ 运算符打印级联字符串
using System;
 
namespace Sample
{
    class Test
    {
        public static void Main(string[] args)
        {
            int val = 55;
            Console.WriteLine("Hello " + "World");
            Console.WriteLine("Value = " + val);
        }
    }
}

当我们运行程序时,输出将是

Hello World
Value = 55

使用格式化字符串打印连接的字符串 [更好的选择]

打印串联字符串的更好的选择是使用格式化的字符串。格式化的字符串允许程序员将占位符用于变量。例如,

下一行,

Console.WriteLine("Value = " + val);

可以替换为

Console.WriteLine("Value = {0}", val);

{0}是变量val的占位符,它将被val的值替换。由于仅使用一个变量,因此只有一个占位符。

格式化的字符串可以使用多个变量。我们将在下面的示例中看到这一点。

示例5:使用字符串格式打印连接的字符串
using System;
 
namespace Sample
{
    class Test
    {
        public static void Main(string[] args)
        {
            int firstNumber = 5, secondNumber = 10, result;
            result = firstNumber + secondNumber;
            Console.WriteLine("{0} + {1} = {2}", firstNumber, secondNumber, result);
        }
    }
}

当我们运行程序时,输出将是

5 + 10 = 15

这里, {0}firstNumber替换, {1}secondNumber替换, {2}result替换。与使用+ 运算符相比,这种打印输出的方法更具可读性,并且不易出错。

要了解有关字符串格式的更多信息,请访问C# 字符串格式


C#输入

在C#中,从用户获取输入的最简单方法是使用Console类的ReadLine()方法。但是, Read()ReadKey()也可用于从用户获取输入。它们也包含在Console类中。

示例6:从用户获取字符串输入

using System;
 
namespace Sample
{
    class Test
    {
        public static void Main(string[] args)
        {
            string testString;
            Console.Write("Enter a string - ");
            testString = Console.ReadLine();
            Console.WriteLine("You entered '{0}'", testString);
        }
    }
}

当我们运行程序时,输出将是:

Enter a string - Hello World
You entered 'Hello World'

ReadLine(),Read()和ReadKey()方法之间的区别:

ReadLine()Read()ReadKey()方法之间的区别是:

  • ReadLine()ReadLine()方法从标准输入流中读取下一行输入。它返回相同的字符串。
  • Read()Read()方法从标准输入流中读取下一个字符 。它返回字符的ascii值。
  • ReadKey()ReadKey()方法获取用户按下的下一个键。此方法通常用于按住屏幕,直到用户按下某个键为止。

如果您想了解更多有关这些方法的信息,请参见以下关于StackOverflow的有趣讨论:Console.Read()和Console.ReadLine()之间的区别?


示例7:Read()和ReadKey()方法之间的区别
using System;
 
namespace Sample
{
    class Test
    {
        public static void Main(string[] args)
        {
            int userInput;

            Console.WriteLine("Press any key to continue...");
            Console.ReadKey();
            Console.WriteLine();

            Console.Write("Input using Read() - ");
            userInput = Console.Read();
            Console.WriteLine("Ascii Value = {0}",userInput);
        }
    }
}

当我们运行程序时,输出将是

Press any key to continue...
x
Input using Read() - Learning C#
Ascii Value = 76

从此示例中,必须清楚ReadKey()Read()方法的工作方式。在使用ReadKey() ,只要按下该键,它就会显示在屏幕上。

使用Read() ,它需要整行,但仅返回第一个字符的ASCII值。因此,将打印76 ( L ASCII值)。


读取数值(整数和浮点类型)

在C#中,读取字符或字符串非常简单。您需要做的就是根据需要调用相应的方法。

但是,在C#中读取数字值可能会有些棘手。我们仍将使用与获取字符串值相同的ReadLine()方法。但是由于ReadLine()方法以字符串接收输入,因此需要将其转换为整数或浮点类型。

转换输入的一种简单方法是使用Convert类的方法。

示例8:使用Convert类从用户读取数值
using System;
 
namespace UserInput
{
    class MyClass
    {
        public static void Main(string[] args)
        {
            string userInput;
            int intVal;
            double doubleVal;

            Console.Write("Enter integer value: ");
            userInput = Console.ReadLine();
            /* Converts to integer type */
            intVal = Convert.ToInt32(userInput);
            Console.WriteLine("You entered {0}",intVal);

            Console.Write("Enter double value: ");
            userInput = Console.ReadLine();
            /* Converts to double type */
            doubleVal = Convert.ToDouble(userInput);
            Console.WriteLine("You entered {0}",doubleVal);
        }
    }
}

当我们运行程序时,输出将是

Enter integer value: 101
You entered 101
Enter double value: 59.412
You entered 59.412

Convert类的ToInt32()ToDouble()方法分别将输入的字符串转换为整数和双ToDouble()类型。同样,我们可以将输入转换为其他类型。这是Convert类的可用方法的完整列表。

还有其他方法可以从用户那里获取数字输入。要了解更多信息,请访问从用户输入读取整数。