// CLI_02.cpp: 主项目文件。
#include "stdafx.h"
using namespace System;
int main(array<System::String ^> ^args)
{
Console::Clear();
Console::Write("输入圆的半径:");
double r=Double::Parse(Console::ReadLine());
double area=3.1415*r*r;
Console::WriteLine("半径为{0}的圆面积为:{1}",r,area);
Console::ReadKey();
return 0;
}
从整体上看,C++/CLI编写的程序结构与标准C++程序类似,但是里面又很想C#的,比如,Console::Clear(),在C#里面的写法是Console.Clear();
包含头文件,使用命名空间。main函数作为应用程序的入口函数。
在这里,using 使用命名空间,在C++中是需要使用namespace 的,否者会报错,而C#里面却是直接使用 using System;
C++/CLI 的所有数组都包含一个Length属性以记录该数组中包含的元素数,应此可以用来遍历整个数组来访问args数组中的所有参数。
//TODO::遍历参数列表
for (int i=0;i<args->Length;i++) //输出所有的参数
{
Console::WriteLine("参数{0}:{1}",i,args[i]);
}
控制台的输入输出:
Console类,Write 方法,WriteLine方法,Read(),ReadLine()。
其中{0} 为格式化占位符,表示将在该处插入所引用的参数的值。顺序可以颠倒。
通常的格式化规范为{n,w:Axx},其中n为索引值,用于选择逗号后的第几个参数,A为单个字母的格式化说明符,表示如何对变量格式化。
可选的值:C/C,D/d,E/e,F/f,G/g,N/n,X/x.
xx为一个或者两个数字,指定输出参数的精度;W为有符号整数,表示可选的字段宽度范围。
//TODO::占位符和输出
Console::WriteLine("圆的半径为:{0,3},面积为:{1,5:F6}",8,3.1415926*8*8);
ReadKey()测试按键。
//TODO::ReadKey()测试按键
ConsoleKeyInfo keyPressed=Console::ReadKey(true);
Console::WriteLine("按键:{0}",keyPressed.Key);
Console::WriteLine("按键的Unicode码:{0}",keyPressed.KeyChar);
Console::WriteLine("Shift Alt Ctrl 按键:{0}",keyPressed.Modifiers);
循环的话,退出条件为KeyPressed.key==Console::Escape;