频道栏目
读书频道 > web开发 > .NET > Visual C++ .NET程序设计教程(第2版)
3.5.1 控制台输入
2012-11-26 16:06:58     我来说两句
收藏   我要投稿
本书以Visual C++ .NET为平台介绍程序设计方法。第一部分为教程,首先介绍Visual C++ .NET开发环境,然后介绍C++/CLI语言基础和C++/CLI面向对象编程基础,在这个基础上系统介绍Visual C++ .NET应用程序设计...  立即去当当网订购

3.5 控制台输入输出及格式

学习C++/CLI编程时往往需要通过控制台窗口进行数据的输入和结果的输出等操作,System命名空间中的Console类就是封装了控制台的操作,提供输入、输出及流错误处理等一系列的静态方法(函数)。

3.5.1 控制台输入

控制台输入输出都是字符流,流从键盘流向控制台窗口,称为输入;而流从程序流向控制台窗口称为输出。对于控制台输入来说,Console类提供了ReadLine、Read和ReadKey等静态函数,分别读取整行字符、单个字符和当前按键的值。

1. ReadLine、Read和ReadKey

ReadLine函数是将整行字符存入到一个字符串中,当按下【Enter】键时,结束字符的读取。该函数返回读入的字符串String^引用。例如:
String^ strLine = Console::ReadLine(); 

由于ReadLine读取是整行字符的字符串,因此若要获取从控制台输入的整数和浮点数时,还需要通过基本值类型的静态函数Parse将字符串解析并转换成相应类型的数值。例如:
int  n = Int32::Parse( Console::ReadLine() ); // 转换成整型
double f = Double::Parse( Console::ReadLine() ); // 转换成双精度浮点数

如果想要逐个读取字符,则可使用Read函数来进行,它返回该字符的字符值(一个整型数),并当按下【Enter】键时,结束字符的读取。相对于Read来说,ReadKey函数可能更有用,因为ReadKey返回ConsoleKeyInfo对象引用,且不会因为按【Enter】键而结束读取。同时,ReadKey的另一个版本还可有一个bool类型参数,当指定为true时表示按键不会回显在命令行上,而当指定为false时命令行上将回显按键。默认时,按下的键总是显示在控制台窗口中。

2. ConsoleKeyInfo类

在控制台中,与键盘信息密切相关的类是ConsoleKeyInfo,它用来封装按下的字符键以及Shift、Alt和Ctrl修改键的状态。它有3个属性成员:Key、KeyChar和Modifiers,分别用来获取当前对象所表示的控制台键、Unicode 字符以及修改键的状态。其中,Modifiers是ConsoleModifiers 枚举类型,用来表示是否是键盘上的Shift、Alt和Ctrl修改键。

【例Ex_Key】控制台窗口中键的使用
#include "stdafx.h"
using namespace System;
int main(array<System::String ^> ^args)
{
 ConsoleKeyInfo cki;
 Console::WriteLine( L"按下键进行测试,包括Shift、Alt和Ctrl的组合键!" );
 Console::WriteLine( L"按Esc键退出程序!" );
 do {
  cki = Console::ReadKey( true );
  Console::Write( L"已按下:" );
  Console::Write( L"{0}键,Unicode码值:{1},修改键:{2}",
       cki.Key, cki.KeyChar, cki.Modifiers );
  Console::WriteLine();
 } while ( cki.Key != ConsoleKey::Escape );
 return 0;
}

程序运行并测试,结果如图3-2所示。


 

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:3.4.6 函数和main实参
下一篇:3.5.2 Write和WriteLine
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站