C#控制台应用程序的输入输出
目录
用控制台输入
ReadLine方法
ReadKey方法
快速输入C#代码
在控制台应用程序中输出格式化数据
Console.Write方法&Console.WriteLine方法
格式码
用控制台输入
ReadLine方法
System命名空间下的Console类提供了ReadLine方法,该方法可以从标准输入流依次读取从键盘输入的字符,并将从键盘输入的的字符立即显示到控制台窗口中,并且会在用户按下回车键之前一直等待输入,知道用户按下回车停止输入为止。
给出例子,简单演示一下ReadLine方法的简单用法:
string s = Console.ReadLine();
if (s == "abc")
{Console.WriteLine("ok");
}
ReadKey方法
除了ReadLine方法外,我们还可以使用ReadKey方法来获取用户输入的字符或功能键。ReadKey方法返回的是一个ConsoleKeyInfo类型的对象,该对象会描述该用户按下了哪个键,该方法通常用于判断条件。
给出例子,演示一下ReadKey方法的简单用法:
代码功能一直接受用户键入的信息,直到接受到了<Esc>键。
ConsoleKeyInfo c;
do
{c = ConsoleKeyInfo( );
}
while (c.Key != ConsoleKey.Escape);
快速输入C#代码
我们程序员在编写C#代码时,系统给我们提供了很多可以直接插入的代码段,利用这些代码段可以大大提高我们的开发进程,减轻我们的编码负担。例如,输入"for"三个字母后,连续按两个<tab>键,系统就会自动插入如下代码段:
for (int i = 0; i < length; i++)
{}
在控制台应用程序中输出格式化数据
Console.Write方法&Console.WriteLine方法
格式:
Console.WriteLine("格式化表示",参数序列);
Console.Write("格式化表示",参数序列);
格式化表示:{N [,M][:格式码]}
N:用于指定参数序列中的输出信号
M:指定参数输出的最小长度,如果参数长度小于M,就用空格填充,如果大于等于M,则按实际长度输出;M为正,左对齐;M为负,右对齐;若未指定M,则默认为零。
例:
int x=10,y=20,c=620;
Console.WriteLine("{0}+{1}+{2}={3}",x,y,z,x+y+z);//输出10+20+620=650
格式码
格式码:为可选的格式化代码字符串。
格式符 | 含 义 | 示 例 | 输出结果 |
---|---|---|---|
C | 将数字按照金额形式输出 |
Console.WriteLine("{0:C}",10); Console.WriteLine("{0:C}",10.5); |
¥10.00 ¥10.50 |
D或d |
输出十进制整数。D后的数 字表示输出位数,不够指定 的位数时,左边补0 |
Console.WriteLine("{0:D}",10); Console.WriteLine("{0:D5}",10); |
10 00010 |
F或f |
小数点后固定位数(四舍五 入),F后面不指定位数时, 默认为两位 |
Console.WriteLine("{0:F}",10); Console.WriteLine("{0:F4}",10.56736); Console.WriteLine("{0:F2}",12345.6789); Console.WriteLine("{0:F3}",123.45); |
10.00 10.5674 12345.68 123.450 |
N或n |
整数部分每3位用逗号分隔; 小数点后固定位数(四舍五 入),N 后面不指定位数时 ,默认为两位 |
Console.WriteLine("{0:n4}",12345.6789); | 12,345.6789 |
P或p |
以百分比形式输出,整数部 分每3位用逗号分隔;小数 点后固定位数(四舍五入), 为两位 |
Console.WriteLine("{0:p}",0.126); | 12.60% |
X或x |
按十六进制格式输出。X后 的数字表示输出位数,不够 指定的位数时,前面补0 |
Console.WriteLine("{0:X}",10); Console.WriteLine("{0:X4}",10); |
A 000A |
0 |
0 占位符,如果数字位数不 够指定的占位符位数,则左 边补0;如果数字位数超过 指定的占位符位数,则按照 实际位数原样输出。如果小 数部分的位数超出指定的占 位符位数,则多余的部分四 舍五入 |
Console.WriteLine("{0:00000}",123); Console.WriteLine("{0:000}",12345); Console.WriteLine("{0:0000}",123.64); Console.WriteLine("{0:00.00}",123.6484); |
00123 12345 0124 123.65 |
# |
#占位符。对整数部分,去 掉数字左边的无效0;对小 数部分,按照四舍五入原则 处理后,再去掉右边的无效 0。如果这个数就是0,而又 不想让它显示的时候,#占 位符很有用。 |
Consol.WriteLine("{0:####}",123); Consol.WriteLine("{0:####}",123.64); Consol.WriteLine("{0:####.###}",123.64); Consol.WriteLine("{0:####.##}",0); Consol.WriteLine("{0:####.##}",123.648); |
123 124 123.64 无 123.65 |
PS:在格式化的表示中,有两个比较特殊的用法:
- 如果恰好在格式中也要使用大括号,可以用连续的两个大括号表示一个大括号。例:"{{\}}"。
- 如果希望格式中的字符或字符串包含与格式符相同的字符,但有希望能够让其原样显示时,可以用单引号将与格式符相同的字符括起来。
C#控制台应用程序的输入输出相关推荐
- [ACM训练] ACM中巧用文件的输入输出来改写acm程序的输入输出 + ACM中八大输入输出格式...
ACM中巧用文件的输入输出来改写acm程序的输入输出 经常有见大神们使用文件来代替ACM程序中的IO,尤其是当程序IO比较复杂时,可以使自己能够更专注于代码的测试,而不是怎样敲输入. C/C++代码中 ...
- book3 复习 使用c#开发控制台应用程序
book3 复习 使用c#开发控制台应用程序 第一章 第一个C#程序 变量与常量 常量的定义 const 数据类型 常量名 = 值; 常量的特点 不可修改 使用大写的名称命名 输入输出语句 输出内容 ...
- VC++6.0 win32 控制台应用程序 简单应用 附代码
**VC++6.0 win32 控制台应用程序 简单应用 附代码 ** .cpp 文件名 注意:在源文件添加如下声明: #include //没有.h using namespace std;//使用 ...
- C# 创建控制台应用程序
C#的语法总结将全部通过控制台应用程序总结. 一.文件->新建项目 二. 三.创建后的界面. 转载于:https://www.cnblogs.com/nevernet/archive/2008/ ...
- 列举窗体控制台应用程序中的3中控件_今天来点枯燥的,Visual C#的Windows窗体运行过程...
我们上一期只是在windows窗体上放了三个控件,并编写了一段小程序,实现了触发窗体上的按钮,使得标签上的内容改变,并能够结束运行当中的程序: 然而,我们在编写代码窗口时,windows窗体自动嵌入了 ...
- 如何在C#Windows控制台应用程序中更新当前行?
使用C#构建Windows控制台应用程序时,是否可以在不扩展当前行或转到新行的情况下写入控制台? 例如,如果我想显示一个百分比,该百分比代表一个过程到完成为止的距离,我只想在与光标相同的行上更新值,而 ...
- 屏蔽控制台应用程序的窗口#pragma comment(linker, /subsystem:windows /ENTRY:mainCRTStartup)...
众所周知,控制台应用程序一般都会显示一个控制台窗口(虚拟DOS窗口),但很多时候控制台程序的执行逻辑根本不需要与用户进行交互,所以显示这个难看的窗口纯属多余,那么如何将它屏蔽掉呢?下面我向大家介绍一种 ...
- 【Android 逆向】Android 逆向通用工具开发 ( Windows 平台运行的控制台应用程序类型 | 编译 Windows 平台运行的 Android 逆向程序 )
文章目录 一.Windows 平台运行的控制台应用程序类型 二.编译 Windows 平台运行的 Android 逆向程序 一.Windows 平台运行的控制台应用程序类型 hacktool 工程的类 ...
- 使用C#创建SQLite控制台应用程序
本文属于原创,转载请注明出处,谢谢! 一.开发环境 操作系统:Windows 10 X64 开发环境:VS2015 编程语言:C# .NET版本:.NET Framework 4.0 目标平台:X86 ...
- 控制台应用程序的根目录
1.取得控制台应用程序的根目录方法 方法1.Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径 方法2.AppDomain.CurrentDomain.Ba ...
最新文章
- 2022-2028年中国橡胶漆产业发展动态及未来趋势预测报告
- Redis总结(二)C#中如何使用redis
- DL之DNN:自定义2层神经网络TwoLayerNet模型(封装为层级结构)利用MNIST数据集进行训练、GC对比
- 前端技术之_CSS详解第五天
- Redis之Ubuntu开机启动
- php地图路径规划,Qt编写地图综合应用21-路径规划
- CentOS安装Nvidia驱动和CUDA
- STM32 易阅读的代码风格
- Windows Server 2003 安装教程——图文小白版(附下载地址)
- linux定义getch函数
- JS导出excel 纯前端
- 13-24.产品经理入门到精通(二)
- Red Bend与阿朗推LTE移动设备管理 使4G设备兼容OMA DM
- php获取谷歌邮箱,php 获取gmail 联系人邮箱,应用oauth2.0验证
- Android带动画进度条简单实现
- 如何用好示波器?资深工程师也会忽略这些细节……
- 13个坏习惯让IT工作者过度劳累
- 安徽公务员计算机专业科目真题,公务员计算机专业真题+答案安徽省考 安徽省公务员考试...
- c# InvokeRequired和Invoke
- 32位与64位系统基本数据类型的字节数