表示控制台应用程序的标准输入流、输出流和错误流。 此类不能被继承。
继承层次结构
System::Console
程序集: mscorlib(在 mscorlib.dll 中)
语法
public ref class Console abstract sealed
Console 类型公开以下成员。
属性
名称 | 说明 | |
---|---|---|
BackgroundColor | 获取或设置控制台的背景色。 | |
BufferHeight | 获取或设置缓冲区的高度。 | |
BufferWidth | 获取或设置缓冲区的宽度。 | |
CapsLock | 获取一个值,该值指示 Caps Lock 键盘切换键是打开的还是关闭的。 | |
CursorLeft | 获取或设置光标在缓冲区中的列位置。 | |
CursorSize | 获取或设置光标在字符单元格中的高度。 | |
CursorTop | 获取或设置光标在缓冲区中的行位置。 | |
CursorVisible | 获取或设置一个值,用以指示光标是否可见。 | |
Error | 获取标准错误输出流。 | |
ForegroundColor | 获取或设置控制台的前景色。 | |
In | 获取标准输入流。 | |
InputEncoding | 获取或设置控制台用于读取输入的编码。 | |
KeyAvailable | 获取一个值,该值指示按键操作在输入流中是否可用。 | |
LargestWindowHeight | 根据当前字体和屏幕分辨率获取控制台窗口可能具有的最大行数。 | |
LargestWindowWidth | 根据当前字体和屏幕分辨率获取控制台窗口可能具有的最大列数。 | |
NumberLock | 获取一个值,该值指示 Num Lock 键盘切换键是打开的还是关闭的。 | |
Out | 获取标准输出流。 | |
OutputEncoding | 获取或设置控制台用于写入输出的编码。 | |
Title | 获取或设置要显示在控制台标题栏中的标题。 | |
TreatControlCAsInput | 获取或设置一个值,该值指示是将修改键 Control 和控制台键 C 的组合 (Ctrl+C) 视为普通输入,还是视为由操作系统处理的中断。 | |
WindowHeight | 获取或设置控制台窗口区域的高度。 | |
WindowLeft | 获取或设置控制台窗口区域的最左边相对于屏幕缓冲区的位置。 | |
WindowTop | 获取或设置控制台窗口区域的最顶部相对于屏幕缓冲区的位置。 | |
WindowWidth | 获取或设置控制台窗口的宽度。 |
方法
名称 | 说明 | |
---|---|---|
Beep() | 通过控制台扬声器播放提示音。 | |
Beep(Int32, Int32) | 通过控制台扬声器播放具有指定频率和持续时间的提示音。 | |
Clear | 清除控制台缓冲区和相应的控制台窗口的显示信息。 | |
MoveBufferArea(Int32, Int32, Int32, Int32, Int32, Int32) | 将屏幕缓冲区的指定源区域复制到指定的目标区域。 | |
MoveBufferArea(Int32, Int32, Int32, Int32, Int32, Int32, Char, ConsoleColor, ConsoleColor) | 将屏幕缓冲区的指定源区域复制到指定的目标区域。 | |
OpenStandardError() | 获取标准错误流。 | |
OpenStandardError(Int32) | 获取设置为指定缓冲区大小的标准错误流。 | |
OpenStandardInput() | 获取标准输入流。 | |
OpenStandardInput(Int32) | 获取设置为指定缓冲区大小的标准输入流。 | |
OpenStandardOutput() | 获取标准输出流。 | |
OpenStandardOutput(Int32) | 获取设置为指定缓冲区大小的标准输出流。 | |
Read | 从标准输入流读取下一个字符。 | |
ReadKey() | 获取用户按下的下一个字符或功能键。 按下的键显示在控制台窗口中。 | |
ReadKey(Boolean) | 获取用户按下的下一个字符或功能键。 按下的键可以选择显示在控制台窗口中。 | |
ReadLine | 从标准输入流读取下一行字符。 | |
ResetColor | 将控制台的前景色和背景色设置为默认值。 | |
SetBufferSize | 将屏幕缓冲区的高度和宽度设置为指定值。 | |
SetCursorPosition | 设置光标位置。 | |
SetError | 将 Error 属性设置为指定的 TextWriter 对象。 | |
SetIn | 将 In 属性设置为指定的 TextReader 对象。 | |
SetOut | 将 Out 属性设置为指定的 TextWriter 对象。 | |
SetWindowPosition | 设置控制台窗口相对于屏幕缓冲区的位置。 | |
SetWindowSize | 将控制台窗口的高度和宽度设置为指定值。 | |
Write(Boolean) | 将指定的布尔值的文本表示形式写入标准输出流。 | |
Write(Char) | 将指定的 Unicode 字符值写入标准输出流。 | |
Write(array<Char>) | 将指定的 Unicode 字符数组写入标准输出流。 | |
Write(Decimal) | 将指定的 Decimal 值的文本表示形式写入标准输出流。 | |
Write(Double) | 将指定的双精度浮点值的文本表示形式写入标准输出流。 | |
Write(Int32) | 将指定的 32 位有符号整数值的文本表示写入标准输出流。 | |
Write(Int64) | 将指定的 64 位有符号整数值的文本表示写入标准输出流。 | |
Write(Object) | 将指定对象的文本表示形式写入标准输出流。 | |
Write(Single) | 将指定的单精度浮点值的文本表示形式写入标准输出流。 | |
Write(String) | 将指定的字符串值写入标准输出流。 | |
Write(UInt32) | 将指定的 32 位无符号整数值的文本表示写入标准输出流。 | |
Write(UInt64) | 将指定的 64 位无符号整数值的文本表示写入标准输出流。 | |
Write(String, Object) | 使用指定的格式信息将指定对象的文本表示形式写入标准输出流。 | |
Write(String, array<Object>) | 使用指定的格式信息将指定的对象数组的文本表示形式写入标准输出流。 | |
Write(array<Char>, Int32, Int32) | 将指定的 Unicode 字符子数组写入标准输出流。 | |
Write(String, Object, Object) | 使用指定的格式信息将指定对象的文本表示形式写入标准输出流。 | |
Write(String, Object, Object, Object) | 使用指定的格式信息将指定对象的文本表示形式写入标准输出流。 | |
Write(String, Object, Object, Object, Object) | 使用指定的格式信息将指定的对象和可变长度参数列表的文本表示形式写入标准输出流。 | |
WriteLine() | 将当前行终止符写入标准输出流。 | |
WriteLine(Boolean) | 将指定布尔值的文本表示形式(后跟当前行终止符)写入标准输出流。 | |
WriteLine(Char) | 将指定的 Unicode 字符值(后跟当前行终止符)写入标准输出流。 | |
WriteLine(array<Char>) | 将指定的 Unicode 字符数组(后跟当前行终止符)写入标准输出流。 | |
WriteLine(Decimal) | 将指定的 Decimal 值的文本表示形式(后跟当前行终止符)写入标准输出流。 | |
WriteLine(Double) | 将指定的双精度浮点值的文本表示形式(后跟当前行终止符)写入标准输出流。 | |
WriteLine(Int32) | 将指定的 32 位有符号整数值的文本表示(后跟当前行的结束符)写入标准输出流。 | |
WriteLine(Int64) | 将指定的 64 位有符号的整数值的文本表示(后跟当前行的结束符)写入标准输出流。 | |
WriteLine(Object) | 将指定对象的文本表示形式(后跟当前行终止符)写入标准输出流。 | |
WriteLine(Single) | 将指定的单精度浮点值的文本表示形式(后跟当前行终止符)写入标准输出流。 | |
WriteLine(String) | 将指定的字符串值(后跟当前行终止符)写入标准输出流。 | |
WriteLine(UInt32) | 将指定的 32 位无符号的整数值的文本表示(后跟当前行的结束符)写入标准输出流。 | |
WriteLine(UInt64) | 将指定的 64 位无符号的整数值的文本表示(后跟当前行的结束符)写入标准输出流。 | |
WriteLine(String, Object) | 使用指定的格式信息,将指定对象(后跟当前行终止符)的文本表示形式写入标准输出流。 | |
WriteLine(String, array<Object>) | 使用指定的格式信息,将指定的对象数组(后跟当前行终止符)的文本表示形式写入标准输出流。 | |
WriteLine(array<Char>, Int32, Int32) | 将指定的 Unicode 字符子数组(后跟当前行终止符)写入标准输出流。 | |
WriteLine(String, Object, Object) | 使用指定的格式信息,将指定对象的文本表示形式(后跟当前行终止符)写入标准输出流。 | |
WriteLine(String, Object, Object, Object) | 使用指定的格式信息,将指定对象的文本表示形式(后跟当前行终止符)写入标准输出流。 | |
WriteLine(String, Object, Object, Object, Object) | 使用指定的格式信息,将指定的对象和可变长度参数列表(后跟当前行终止符)的文本表示形式写入标准输出流。 |
事件
名称 | 说明 | |
---|---|---|
CancelKeyPress | 在同时按下修改键 Control (Ctrl) 和控制台键 C (C)(即 Ctrl+C)时发生。 |
备注
控制台是一个操作系统窗口,用户可在其中通过计算机键盘输入文本,并从计算机终端读取文本输出,从而与操作系统或基于文本的控制台应用程序进行交互。 例如,在 Windows 中控制台称为命令提示窗口,可以接受 MS-DOS 命令。 Console 类对从控制台读取字符并向控制台写入字符的应用程序提供基本支持。
控制台 I/O 流
控制台应用程序启动时,操作系统会自动将三个 I/O 流与控制台关联。 您的应用程序可以从标准输入流读取用户输入;将正常数据写入到标准输出流;以及将错误数据写入到标准错误输出流。 这些流会作为 In、Out 和 Error 属性的值提供给应用程序。
默认情况下,In 属性的值为 System.IO::TextReader 对象,而 Out 和 Error 属性的值为 System.IO::TextWriter 对象。 不过,您可以将这些属性设置为不表示控制台的流;例如,可以将这些属性设置为表示文件的流。 若要重定向标准输入流、标准输出流或标准错误流,请分别调用 SetIn、SetOut 或 SetError 方法。 使用这些流的 I/O 操作是同步的,这意味着多个线程均可读取或写入这些流。
注意 |
---|
不应使用 Console 类将输出显示在无人参与的应用程序(如服务器应用程序)中。 同样,在 Windows 应用程序中调用 Write 和 WriteLine 等方法也不起任何作用。 |
基础流定向到控制台时 Console 类成员能够正常工作,但是,如果将基础流重定向(如重定向到一个文件),则该类的成员可能会引发异常。 因此,如果要将标准流重定向,请在应用程序中捕获 System.IO::IOException。
显式调用 In、Out 和 Error 属性表示的流对象的成员有时十分有用。 例如,默认情况下,Console::ReadLine 方法从标准输入流中读取输入。 同样,Console::WriteLine 方法将数据写入标准输出流,并在数据后添加默认行终止字符串;也就是说,数据后跟回车和换行(“\r\n”)。 但 Console 类不提供用于将数据写入标准错误输出流的相应方法,也不提供用于更改写入该流的数据的行终止字符串的属性。
若要解决此问题,可以将 Out 或 Error 属性的 TextWriter::NewLine 属性设置为其他行终止字符串。 例如,C# 语句 Console.Error.NewLine = "\r\n\r\n"; 将标准错误输出流的行终止字符串设置为两个回车符和换行符序列。 然后,您可以显式调用错误输出流对象的 WriteLine 方法,在 C# 语句中为 Console.Error.WriteLine();。
屏幕缓冲区和控制台窗口
控制台有两个关系紧密的功能,也就是屏幕缓冲区和控制台窗口。 文本实际上是从控制台拥有的流进行读取和写入的,但看起来像是在控制台拥有的一个称为屏幕缓冲区的区域中进行读取和写入的。 屏幕缓冲区是控制台的一个特性,以由行和列组成的矩形网格的形式进行组织,其中每个网格交叉位置(字符单元格)都可包含一个字符。 每个字符都有自己的前景色,而每个字符单元格都有自己的背景色。
屏幕缓冲区可通过称为控制台窗口的矩形区域查看。 控制台窗口是控制台的另一个特性;它不是控制台本身,控制台本身是一个操作系统窗口。 控制台窗口也以行和列的形式进行组织,其大小与屏幕缓冲区相同或者更小,该窗口可进行移动以查看基础屏幕缓冲区的不同区域。 如果屏幕缓冲区比控制台窗口大,控制台会自动显示滚动条,以使控制台窗口可以在屏幕缓冲区上重新定位。
光标指示屏幕缓冲区中当前正在读取或写入文本的位置。 可以隐藏或显示光标,光标的高度可以更改。 如果光标可见,控制台窗口的位置会自动移动,以便总是能够看到光标。
字符单元格在屏幕缓冲区中的坐标原点为左上角,光标和控制台窗口的位置相对于该原点进行计算。 使用从零开始的索引来指定位置;也就是说,将最上面的行指定为行 0,将最左边的列指定为列 0。 行和列索引的最大值为 Int16::MaxValue。
功能
Console 类提供用于从控制台读取单个字符或整行的方法;该类还提供若干写入方法,可将值类型的实例、字符数组以及对象集自动转换为格式化或未格式化的字符串,然后将该字符串(可选择是否尾随一个行终止字符串)写入控制台。 Console 类还提供一些用以执行以下操作的方法和属性:获取或设置屏幕缓冲区、控制台窗口和光标的大小;更改控制台窗口和光标的位置;移动或清除屏幕缓冲区中的数据;更改前景色和背景色;更改显示在控制台标题栏中的文本;以及播放提示音。
Console 类还包含支持控制台窗口外观自身自定义的成员。 可调用 SetWindowSize 方法同时更改控制台窗口中的行数和列数,或使用 WindowHeight 和 WindowWidth 属性可以独立地更改行数和列数。 可以使用 ForegroundColor 和 BackgroundColor 属性来调整控制台窗口的颜色,使用 CursorSize 和 CursorVisible 属性来自定义控制台窗口中的光标。
示例
此代码示例演示如何从标准输入流与输出流读取和向它们写入。 请注意,可以使用 SetIn 和 SetOut 方法重定向这些流。
int main() { Console::Write( L"Hola " ); Console::WriteLine( L"Mundo!" ); Console::WriteLine( L"What is your name: " ); String^ name = Console::ReadLine(); Console::Write( L"Buenos Dias, " ); Console::Write( name ); Console::WriteLine( L"!" ); }
版本信息
.NET Framework
受以下版本支持:4、3.5、3.0、2.0、1.1、1.0.NET Framework Client Profile
受以下版本支持:4、3.5 SP1
平台
Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2
.NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。
线程安全
此类型是线程安全的。