当前位置:文档之家› 如何在MFC中添加全局变量和全局函数

如何在MFC中添加全局变量和全局函数

如何在MFC中添加全局变量和全局函数
如何在MFC中添加全局变量和全局函数

如何在 MFC 中添加全局变量和全局函数
在 MFC 下如何定义全局变量和全局函数
用 MFC 制作的工程由很多文件构成,它不能象一般 C++程序那样随意在类外定义 全局变量, 在这里要想定义能被工程内多个文件共享的全局变量和函数必须用一 些特殊方法才行。实际上有多种方法可以实现,这里只介绍两种方法。 一、在应用程序类中定义 用 MFC 生成的工程中都有一个名为 CxxxApp 的类,它派生于 CWinApp 类。这 个类主要进行程序的初始化,生成文档、视图对象等工作。我们可以把需要全局 访问的变量和函数定义为这个类的成员变量和成员函数,就可以实现全局访问 了。 从严格意义上讲,这种变量和函数并不是全局的,因为它仍然只是类中的 成员, 只是由于我们很容易获得 CxxxApp 类的指针, 所以我们可以在文档、 视图、 对话框以及各种自定义类中访问到它们,达到与全局变量类似的效果。访问时用 函数“AfxGetApp()”获得 CxxxApp 类的指针,用 “AfxGetApp()->成员”访问 变量或函数。 例: Test.h:(应用程序类头文件) class CTestApp : public CWinApp { public: int x; //全局变量 int f(int y); //全局函数 ………… }; Test.cpp:(应用程序类程序文件) int CTestApp::f(int y) //全局函数定义 { y++; return y; } 定义在 CTestApp 类中的变量和函数可以在其它类中被访问。比如在视图的 某函数中要访问变量 x 和函数 f():

void CTestView::xyz() { CTestApp *app = (CTestApp *)AfxGetApp(); //生成指向应用程序 类的指针 app->x = 0; //访问变量 x int z = app->f(1); //访问函数 f() ………… }
这样,变量 x 和函数 f()可以视作为全局的。 用这种方法实现的全局变量和全局函数虽比较简单,但也有缺点,一是访问 不太方便,每次都需要获取应用程序类的指针;再就是把一些与应用程序类本身 无关的变量和函数放在里面,使这个类看上去怪怪的,破坏了类的封装。 二、用静态变量和静态函数实现 很喜欢 API 函数的那种调用方法,不论在哪个类中只要用“::API 函数”就 可以调用了。 合理利用静态类型(static)可以实现与此相似的全局变量和全局函 数。 静态变量和静态函数有如下性质: 静态变量和静态函数有如下性质: 若在一个类中用关键字 static 声明数据成员,则这个数据成员就只存在一 个拷贝,无论该类创建了多少个实例,它始终只存在一个,即使该类的实例一个 也没创建,它也存在。 若在一个类中用关键字 static 声明函数,该函数可以用“类名::函数名” 方式访问,无需引用该类的实例,甚至这个类的实例可以不存在。 利用这个性质实现的全局变量和函数使用起来很方便。 值得注意的是,全局变量和全局函数最好集中封装,不要在文档、视图等类 内部定义,这样用起来才有全局的感觉。 例: 1、添加一个没有基类的新类,设类名起为 CPublic,姑且称之为公用类 单击“Insert”菜单下的“New Class”命令,选择“Class type”为 “Generic Class”,在“Name”栏中填入类名“CPublic”,单击“OK”,则新 类建立完毕。

2、包含公用类的头文件,使各个类都能访问它 CPublic 的头文件应包含在应用程序类的头文件中,这样在其它类中引用 CPublic 类时就不需要再包含了。 Test.h:(应用程序类头文件) #include "Public.h" //包含公用类头文件 class CTestApp : public CWinApp { ………… }; 3、在公用类中定义全局变量和全局函数,均使用 static 修饰,静态变量还 必须在类外定义和初始化 Public.h:(公用类头文件) class CPublic { public: CPublic(); virtual ~CPublic(); public: static int x; //全局变量 static int time; //全局变量 static int f(int y); //全局函数 ………… }
Public.cpp:(公用类程序文件) int CPublic::x = 0; //初始化全局变量 int CPublic::time; //定义全局变量 CPublic::CPublic() { } CPublic::~CPublic()

{ } int CPublic::f(int y) //全局函数,这里不要再加 static { y++; return y; }
4、全局量的使用 使用变量:CPublic::变量名 使用函数:CPublic::函数() 如在视图的某函数中访问变量 x 和函数 f(): void CTestView::xyz() { CPublic::x = 0; //访问变量 x CPublic::time = CPublic::f(1); //访问函数 f() ………… } 在其它类中访问 x、time 和 f()的方法与此相同。 5、几点注意: ① 由于静态量可独立于类存在,不需要生成 CPublic 类的实例。 ② 静态数据成员的定义和初始化必须在类外进行,如例中 x 的初始化;变 量 time 虽然没有初始化,但也必须在类外进行定义。由于没有生成 CPublic 类 的实例,所以它的构造函数和析构函数都不会被执行,在里面做什么工作都没有 什么意义。 ③ 如果静态函数需要访问 CPublic 类内的变量, 这些变量也必须为静态的。 因为非静态量在不生成实例时都不会存在。 如: class CPublic { public:

int x; //内部变量 static int f(int y) //全局函数 { x++; return x; }; ………… };
这里 x 虽为类内成员,但如果不生成 CPublic 类的实例,就会出现函数 f()存在,而变量 x 不存在的问题。 总之, 用没有实例的类管理全局量是一个不错的选择, 它具有集中管理, 使用方便的好处。当然,除非特别必要,全局量还是少用为好,一个好的编 程者决不会随意滥用全局量的,一个封装做得不好的程序,在修改维护时会 让你吃足苦头。
全局变量和全局函数最好集中封装,不要在文档、视图等类内部定义, 这样用起来才有全局的感觉。 例:
1、添加一个没有基类的新类,设类名起为 CPublic,姑且称之为公用类 单击“Insert”菜单下的“New Class”命令,选择“Class type”为“Generic Class”,在“Name”栏中填入类名“CPublic”, 单击“OK”, 则新类建立完毕。
2、包含公用类的头文件,使各个类都能访问它 CPublic 的头文件应包含在应用程序类的头文件中, 这样在其它类中引用 CPublic 类时就不需要再包含了。 Test.h:(应用程序类头文件) (如我创建了 AOI 的工程则放到 AOI.h)

#include "Public.h" //包含公用类头文件 class CTestApp : public CWinApp { ………… }; 3、在公用类中定义全局变量和全局函数,均使用 static 修饰,静态变量 还必须在类外定义和初始化
Public.h:(公用类头文件) class CPublic { public: CPublic(); virtual ~CPublic(); public: static int x; //全局变量 static int time; //全局变量 static int f(int y); //全局函数 ………… } 在公用类中对静态变量进行初始化和定义函数体:
Public.cpp:(公用类程序文件)

int CPublic::x = 0; //初始化全局变量 int CPublic::time; //定义全局变量 CPublic::CPublic() { } CPublic::~CPublic() { } int CPublic::f(int y) //全局函数,这里不要再加 static { y++; return y; } 4、全局量的使用 使用变量:CPublic::变量名 使用函数:CPublic::函数() 如在视图的某函数中访问变量 x 和函数 f(): void CTestView::xyz() { CPublic::x = 0; //访问变量 x CPublic::time = CPublic::f(1); //访问函数 f()

………… } 在其它类中访问 x、time 和 f()的方法与此相同。
5、几点注意: ① 由于静态量可独立于类存在,不需要生成 CPublic 类的实例。 ② 静态数据成员的定义和初始化必须在类外进行,如例中 x 的初始化; 变量 time 虽然没有初始化,但也必须在类外进行定义。由于没有生成 CPublic 类的实例,所以它的构造函数和析构函数都不会被执行,在里面 做什么工作都没有什么意义。 ③ 如果静态函数需要访问 CPublic 类内的变量,这些变量也必须为静 态的。因为非静态量在不生成实例时都不会存在

matlab中format函数使用方法

MATLAB中format函数在控制输出格式中的使用方法如下: format 默认格式 format short 5字长定点数format long 15字长定点数format short e 5字长浮点数format long e 15字长浮点数format short g format long g format hex 16进制 format bank 定点货币形式format rat 小数分数表示format + +,-,空格format compact 压缩空格format loose 包括空格和空行format long 15字长定点数format short e 5字长浮点数format long e 15字长浮点数format short g format long g format hex 16进制 format bank 定点货币形式format rat 小数分数表示format + +,-,空格format compact 压缩空格format loose 包括空格和空行 当然也可以不用format 命令,可以修改系统的默认设置格式, File->Preferences->Command Window->Text Display. 如果想得到分数可以用rats()函数 如果想得到根号,只有用符号表示了,当然用符号表示是万能的。例如:

a=1/3 得到0.33333 rats(a) 得到1/3 a='sqrt(3)' 得到sqrt(3) 不过这是字符型,要转换成数值型可以用eval_r(a),或str2num(a). 另外,补充vpa ,digits的用法: 在符号计算中,通常计算结果使用有理数形式表示的,有的时候有理数分子分母很长,不便于观察,所以有时候希望能将系数表示成数值形式,此时就要用到这两个函数。 例子:s=(123*x^2)/29 + (892*x)87 + 212/29; digits(4);(控制输出系数的位数) s=vpa(s); 结果: s =4.241*x^2+10.25*x+7.310

格式化输入、输出函数

格式化输入/输出函数 格式输出函数(printf) 格式字符表 格式字符说明 d或i 以十进制形式输出带符号整数(正数不输出符号) o 以八进制形式输出无符号整数(不输出前缀0) x,X 以十六进制形式输出无符号整数(不输出前缀0x),对于x用abcdef输出;对于X用ABCDEF输出 u 以十进制形式输出无符号整数 f 以小数形式输出单、双精度实数,隐含输出6位小数 e,E 以指数形式输出单、双精度实数,数字部分小数位数为6位小数,指数部分占5位,用“E”时,指数以大写表示 g,G 以%f或%e中较短的输出宽度输出单、双精度实数,不输出无意义的0,用“G” 时,则指数以大写表示 c 输出单个字符 s 输出字符串 p 输出标量的内存地址 未指定宽度和指定输出宽度时的输出结果 输出语句输出结果 printf(“%3d\n”,4321); 4321(按实际位数输出) printf(“%f\n”,123.54); 123.540000(按实际需要宽度输出) printf(“%12f\n”,123.54); 凵凵123.540000(输出右对齐,左边填空格) printf(“%e\n”,123.54); 1.235400e+002(按实际需要宽度输出) printf(“%14e\n”,1213.54); 凵1.235400e+002(输出右对齐,左边填空格) printf(“%g\n”,123.5); 123.5(%f格式比采用%e格式输出宽度小) printf(“%8g\n”,123.5); 凵凵凵123.5(输出右对齐,左边填空格) 指定精度时的输出结果 输出语句输出结果 printf(“%8.3f\n”,123.55); 凵123.550 printf(“%8.1f\n”,123.55); 凵凵凵123.6 printf(“%8.0f\n”,123.55); 凵凵凵凵凵124 printf(“%g\n”,123.56789); 123.568 printf(“%.7g\n”,123.56789); 123.5679 printf(“%.5s\n”,”abcdefg”); abcde 注:在VC中float类型有7位有效数字,double类型有16位有效数字

VB------FORMAT函数的使用

?vb中format函数定义 Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强制返回为文本 -------------------------------- 数字类型的格式化 -------------------------------- 固定格式参数: General Number 普通数字,如可以用来去掉千位分隔号format$("100,123.12","General Number") 返回值 100123.12 Currency 货币类型,可添加千位分隔号和货币符号format$("100123.12","Currency") 返回值¥100,123.12 Fixed 格式为带两位小数的数字 format$("100123","Fixed") 返回值 100123.00 Standard 标准,即带千位分隔号和两位小数

format$("100123","Standard") 返回值 100,123.00 Percent 百分数 format$("100123","Percent") 返回值 10012300.00% Scientific 科学记数法 format$("100123","Scientific") 返回值 1.00E+05 Yes/No 当值为0时返回 NO,否则返回 YES format$("100123","Yes/No") 返回值 Yes True/False 当值为0时返回 False,否则返回 True format$("100123","True/False") 返回值 True On/Off 当值为0时返回 Off,否则返回 On format$("100123","Yes/No") 返回值 On 自定义格式参数 "" 不进行格式化返回值原值 0 占位格式化,不足补0 format$("100123","0000000") 返回值 0100123

c语言格式化说明符(输出格式)

c语言格式化说明符 1.1.1 格式化输入输出函数 一、printf()函数 printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出 信息。在编写程序时经常会用到此函数。printf()函数的调用格式为: printf("<格式化字符串>", <参量表>); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原 样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符, 用来确定输出内容格式。 参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出参数个数一样多, 各参数之间用","分开, 且顺序一一对应, 否则将会出现意想不到的错误。 1. 格式化规定符 Turbo C2.0提供的格式化规定符如下: ━━━━━━━━━━━━━━━━━━━━━━━━━━ 符号作用 —————————————————————————— %d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值 %e 指数形式的浮点数

%x, %X 无符号以十六进制表示的整数 %0 无符号以八进制表示的整数 %g 自动选择合适的表示法 ━━━━━━━━━━━━━━━━━━━━━━━━━━ 说明: (1). 可以在"%"和字母之间插进数字表示最大场宽。 例如: %3d 表示输出3位整型数, 不够3位右对齐。 %9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6, 小数点占一位, 不够9位右对齐。 %8s 表示输出8个字符的字符串, 不够8个字符右对齐。 如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出。 但对浮点数, 若整数部分位数超过了说明的整数位宽度, 将按实际整数位输出; 若小数部分位数超过了说明的小数位宽度, 则按说明的宽度以四舍五入输出。另外, 若想在输出值前加一些0, 就应在场宽项前加个0。 例如: %04d 表示在输出一个小于4位的数值时, 将在前面补0使其总宽度 为4位。 如果用浮点数表示字符或整型量的输出格式, 小数点后的数字代表最大宽度, 小数点前的数字代表最小宽度。 例如: %6.9s 表示显示一个长度不小于6且不大于9的字符串。若大于9, 则第9个字符以后的内容将被删除。 (2). 可以在"%"和字母之间加小写字母l, 表示输出的是长型数。 例如: %ld 表示输出long整数 %lf 表示输出double浮点数 (3). 可以控制输出左对齐或右对齐, 即在"%"和字母之间加入一个"-" 号可 说明输出为左对齐, 否则为右对齐。 例如: %-7d 表示输出7位整数左对齐

(完整word版)文本格式化

课程设计实验报告 题目:编制一个将待格式化的文本按照一定的版面要求重新排版并输出到文件的程序 一:需求分析 1:文本文件非空且以文本文件形式存放(为空没有格式化意义)。输入输出文件名均由用户从键盘输入。 2:字的定义:由非(‘@’,‘’(空格))的任意ASCII码字符组成。 3:文本文件的定义:由字母字符,数字字符,空格和可以用ASCII代码显示的字符组成。‘@’只表示换行的意义。‘’(空格)只表示一个字的结束的意义。 4:任何完整的字都没有被分割在两行:,行尾不齐没关系,但要实现左对齐。每行字符数不超过60 5:输出文件中字与字之间只留一个空格符,即实现多余空格符的压缩。 6:符号‘@’指示它后面的正文在格式化时应另起一段排放,段首缩入8个字符的位置。 二:概要设计 1:void printOut() { 该函数的功能是:格式化文本文件后必要提示用户的信息说明} 2:void writeOut(FILE * fp2,char c1) { 该函数的功能是:将字符输出到文本文件和屏幕} 3:int zuokongbai(FILE * fp2) { 该函数的功能是:实现文本参数格式(左空白)} 4:void pageNumber(FILE * fp2,char * aIndex,int * page) { 该函数的功能是:输出当前页码} 5:void out(int * columns,char * array,int * linage,FILE * fp2,int * page,int * size) { 该函数的功能是:判断是否输出到文本文件和屏幕} 6:void linageFull(FILE * fp2,int * linage,int * columns,int * page) { 该函数的功能是:输出页首的格式(头长+左空白)} 7:void readIn(FILE * fp1,FILE * fp2) { 该函数是整个程序的核心,执行程序的主要逻辑判断} 8:void main() { 该函数的功能是:程序的入口}

CStringFormat()函数与格式输入与输出

CStringFormat()函数与格式输入与输出 Format 指定输出格式,后面跟要输出的变量 目前printf 支持以下格式: %c 单个字符 %d 十进制整数 %f 十进制浮点数 %o 八进制数 %s 字符串 %u 无符号十进制数 %x 十六进制数 %% 输出百分号% 一个格式说明可以带有几个修饰符,用来指定显示宽度,小数尾数及左对齐等: - 左对齐 + 在一个带符号数前加'+'或'-'号 0 域宽用前导零来填充,而不是用空白符 域宽是一个整数,设置了打印一个格式化字符串的最小域。精度使用小数点后加数字表示的,给出每个转换说明符所要输出的字符个数。 注意:带修饰符的显示可能不正常。 数据格式说明由“%”开头,形式为

%<数据输出宽度说明><格式符>,数据格式说明用在需要输出变量或运算数值结果的时候,它的个数与输出表列的个数一一对应。 数据宽度说明中如果实际数据小于宽度,则根据宽度是否大于零而左补空格或右补空格。如果实际数据大于宽度,按实际位数输出。如果缺省宽度说明,则按实际宽度输出。 CString.format('%10f', a); 10表示把a以10个字符宽度格式化 %f形式输出,则小数部分为6位; 例 %10f 若a的整数部分位数+小数点(1位)+小数部分位数大于等于10,则按实际a的形式格式化; 若a的整数部分位数+小数点(1位)+小数部分位数小于10,则在前面补空格,补足10位; 例 %.7f 则 a的小数部分位数若大于7,则截取7位小数,整数部分不变; a的小数部分位数若小于等于7,则不满7位的部分后面以0补足;

VB FORMAT 函数 格式化字串的说明

格式字符值说明 0零占位符如果格式化的值在格式字符串中出现“0”的位置有一个数字,则此数字被复制到输出字符串中。小数点前最左边的“0”的位置和小数点后最右边的“0”的位置确定总在输出字符串中出现的数字范围。“00”说明符使得值被舍入到小数点前最近的数字,其中零位总被舍去。例如,用“00”格式化34.5 将得到值 35。 #数字占位符如果格式化的值在格式字符串中出现“#”的位置有一个数字,则此数字被复制到输出字符串中。否则,输出字符串中的此位置不存储任何值。请注意,如果“0”不是有效数字,此说明符永不显示“0”字符,即使“0”是字符串中唯一的数字。如果“0”是所显示的数字中的有效数字,则显示“0”字符。“##”格式字符串使得值被舍入到小数点前最近的数字,其中零总被舍去。例如,用“##”格式化 34.5 将得到值 35。 .小数点格式字符串中的第一个“.”字符确定格式化的值中的小数点分隔符的位置;任何其他“.”字符被忽略。用作小数点分隔符的实际字符由控制格式化的 NumberFormatInfo 的 NumberDecimalSeparator 属性确定。 ,千位分隔符和数字比例换算“,”字符有两种用途。首先,如果格式字符串在小数点(如果有)左边的两个数字占位符(0 或 #)之间包含“,”字符,则输出将在小数点分隔符左边的每三个数字之间插入千位分隔符。输出字符串中用作小数点分隔符的实际字符由控制格式化的当前 NumberFormatInfo 的NumberGroupSeparator 属性确定。 其次,如果格式字符串在紧邻小数点的左侧包含一个或多个“,”字符,则数字在格式化之前将被“,”字符数除然后乘以 1000。例如,格式字符串“0,,”将 100,000,000 简单表示为 100。使用“,”字符指示比例换算在格式化数字中不包括千位分隔符。因此,若要将数字缩小 1,000,000 倍并插入千位分隔符,应使用格式字符串“#,##0,,”。 %百分比占位符在格式字符串中出现“%”字符将导致数字在格式化之前乘以 100。适当的符号插入到数字本身在格式字符串中出现“%”的位置。使用的百分比字符由当前的 NumberFormatInfo 类确定。 E0 E+0 E-0 e0 e+0

Oracleto_char格式化函数剖析

表5-8. 用于date/time 转换的模板

所有模板都都允许使用前缀和后缀修改器。模板里总是允许使用修改器。前缀'FX' 只是一个全局修改器。

表5-9. 用于日期/时间模板to_char() 的后缀 用法须知: ?如果没有使用FX选项,to_timestamp和to_date忽略空白。FX必须做为模板里的第一个条目声明。 ?反斜杠("\")必须用做双反斜杠("\\"),例如'\\HH\\MI\\SS'。 ?双引号('"')之间的字串被忽略并且不被分析。如果你想向输出写双引号,你必须在双引号前面放置一个双反斜杠('\\'),例如 '\\"YYYY Month\\"'。 ?to_char支持不带前导双引号('"')的文本,但是在双引号之间的任何字串会被迅速处理并且还保证不会被当作模板关键字解释(例如:'"Hello Year: "YYYY')。

用法须知: ?使用'SG','PL' 或'MI' 的带符号字并不附着在数字上面;例如,to_char(-12, 'S9999') 生成' -12',而to_char(-12, 'MI9999') 生成'- 12'。Oracle里的实现不允许在9前面使用MI,而是要求9在MI前面。 ?PL,SG,和TH是 Postgres 扩展。 ?9表明一个与在9字串里面的一样的数字位数。如果没有可用的数字,那么使用一个空白(空格)。 ?TH不转换小于零的值,也不转换小数。TH是一个 Postgres 扩展。 ?V方便地把输入值乘以10^n,这里n是跟在V后面的数字。to_char不支持把V与一个小数点绑在一起使用(例如. "99.9V99" 是不允许的)。

VC++中Format函数详解

Format是一个很常用,却又似乎很烦的方法,以下是它的完整概貌,以供大家查询之用:一、字符串 首先看它的声明: function Format(const Format: string; const Args: array of const): string; overload; 事实上Format方法有两个种形式,另外一种是三个参数的,主要区别在于它是线程安全的,但并不多用,所以这里只对第一个介绍: function Format(const Format: string; const Args: array of const): string; overload; Format参数是一个格式字符串,用于格式化Args里面的值的。Args又是什么呢, 它是一个变体数组,即它里面可以有多个参数,而且每个参数可以不同。 如以下例子: Format("my name is %6s","wind"); 返回后就是 my name is wind 现在来看Format参数的详细情况: Format里面可以写普通的字符串,比如"my name is" 但有些格式指令字符具有特殊意义,比如"%6s" 格式指令具有以下的形式: "%" [index ":"] ["-"] [width] ["." prec] type 它是以"%"开始,而以type结束,type表示一个具体的类型。中间是用来 格式化type类型的指令字符,是可选的。 先来看看type,type可以是以下字符: d十制数,表示一个整型值 u和d一样是整型值,但它是无符号的,而如果它对应的值是负的,则返回时 是一个2的32次方减去这个绝对值的数 如:Format("this is %u",-2); 返回的是:this is 4294967294 f对应浮点数 e科学表示法,对应整型数和浮点数, 比如Format("this is %e",-2.22); 返回的是:this is -2.220000E+000 等一下再说明如果将数的精度缩小

C++ Format函数 使用大全

Format函数 VC++中Format函数详解 首先看它的声明: function Format(const Format: string; const Args: array of const): string; overload; 事实上Format方法有两个种形式,另外一种是三个参数的,主要区别在于它是线程安全的, 但并不多用,所以这里只对第一个介绍: function Format(const Format: string; const Args: array of const): string; overload; Format参数是一个格式字符串,用于格式化Args里面的值的。Args又是什么呢, 它是一个变体数组,即它里面可以有多个参数,而且每个参数可以不同。 如以下例子: Format("my name is %6s","wind"); 返回后就是 my name is wind 现在来看Format参数的详细情况: Format里面可以写普通的字符串,比如"my name is" 但有些格式指令字符具有特殊意义,比如"%6s" 格式指令具有以下的形式: "%" [index ":"] ["-"] [width] ["." prec] type 它是以"%"开始,而以type结束,type表示一个具体的类型。中间是用来 格式化type类型的指令字符,是可选的。 先来看看type,type可以是以下字符: d 十制数,表示一个整型值 u 和d一样是整型值,但它是无符号的,而如果它对应的值是负的,则返回时是一个2的32次方减去这个绝对值的数 如:Format("this is %u",-2); 返回的是:this is 4294967294 f 对应浮点数 e 科学表示法,对应整型数和浮点数, 比如Format("this is %e",-2.22); 返回的是:this is -2.220000E+000 等一下再说明如果将数的精度缩小 g 这个只能对应浮点型,且它会将值中多余的数去掉 比如Format("this is %g",02.200);

格式化输入、输出函数的使用

南京信息工程大学实验(实习)报告 实验(实习)名称 C语言实验日期 4.11 得分指导教师刘文杰 院大气物理专业安全工程年级 16级班次一班姓名刘亚栎学号 20161395007 1.实验目的: 1)掌握格式字符使用的方法。 2)掌握printf()进行格式化输出的方法。 3)掌握scanf()进行格式化输入的方法。 2.实验内容: (1)输入如下程序,观察运行的结果。 #include int main() { int x=1234; float f=123.456; double m=123.456; char ch='a'; char a[]="Hello,world"; int y=3,z=4; printf("%d %d\n",y,z); printf("y=%d,z=%d\n",y,z); printf("%8d,%2d\n",x,x); printf("%f,%8f,%8.1f,%.2f,%.2e\n",f,f,f,f,f); printf("%lf\n",m); printf("%3c\n",ch); printf("%s\n%15s\n%10.5s\n%2.5s\n%.3\n",a,a,a,a,a); return 0; } (2)输入下面程序,观察调试信息。 #include int main() { double x,y; char c1,c2,c3; int a1,a2,a3; scanf("%d%d%d",a1,a2,a3); printf("%d,%d,%d\n",a1,a2,a3); scanf("%c%c%c",&c1,&c2,&c3); printf("%c%c%c\n",c1,c2,c3); scanf("%f,%lf",&x,&y); printf("%f,%lf\n",x,y); return 0;

Format函数在VBA中用法

VB 中Format 格式化显示功能详解 VB 格式化日期时间:MsgBox Format$(Now, "c") '2006-5-25 14:56:05 Format[$] (expr[,fmt]) format 返回变体型 format$ 强制返回为文本 -------------------------------- 数字类型的格式化 -------------------------------- 固定格式参数: General Number 普通数字,如可以用来去掉千位分隔号 format$("100,123.12","General Number") 返回值100123.12 Currency 货币类型,可添加千位分隔号和货币符号 format$("100123.12","Currency") 返回值¥100,123.12 Fixed 格式为带两位小数的数字 format$("100123","Fixed") 返回值100123.00 Standard 标准,即带千位分隔号和两位小数 format$("100123","Standard") 返回值100,123.00 Percent 百分数 format$("100123","Percent") 返回值10012300.00% Scientific 科学记数法 format$("100123","Scientific") 返回值1.00E+05 Yes/No 当值为0时返回NO,否则返回YES format$("100123","Yes/No") 返回值Yes True/False 当值为0时返回False,否则返回True format$("100123","True/False") 返回值True On/Off 当值为0时返回Off,否则返回On

C++中Format函数的用法总结

Format函数的用法总结如下: 函数声明 function Format(const Format: string; const Args: array of const): string; overload; 函数功能 事实上Format方法有两个种形式,另外一种是三个参数的,主要区别在于它是线程安全的,但并不多用,所以这里只对第一个介绍。Format参数是一个格式字符串,用于格式化Args里面的值的。Args是一个变体数组,即它里面可以有多个参数,而且每个参数可以不同。例如: Format("my name is %6s","wind"); 返回的是:my name is wind 函数参数 Format里面可以写普通的字符串,比如"my name is" ,但有些格式指令字符具有特殊意义,比如"%6s" 格式指令具有以下的形式:"%" [index ":"] ["-"] [width] ["." prec] type 它是以"%"开始,而以type结束,type表示一个具体的类型。中间是用来格式化type类型的指令字符,是可选的。各个参数的含义与用途如下; [type] type参数可选的类型有d,u,f,e,g,n,m,p,s,x. 1) d 十进制数,表示一个整型值,u 和d一样是整型值,但它是无符号的,而如果它对应的值是负的,则返回时是一个2的32次方减去这个负数的绝对值。 例如:Format("this is %u",-2); 返回的是:this is 4294967294 2)f 对应浮点数 3)e科学表示法,对应整型数和浮点数 例如:Format("this is %e",-2.22); 返回的是:this is -2.220000E+000 4)g 这个只能对应浮点型,且它会将值中多余的数去掉 例如:Format("this is %g",02.200); 返回的是:this is 2.2 5)n 只能对应浮点型,将值转化为号码的形式,看一个例子就明白了 例如:Format("this is %n",4552.2176); 返回的是:this is 4,552.22 注意:一是,只表示到小数后两位 二是,即使小数没有被截断,它也不会也像整数部分一样有逗号来分开的 6)m 钱币类型,但关于货币类型有更好的格式化方法,这里只是简单的格式化,另外它只对应于浮点值例如:Format("this is %m",9552.21); 返回的是:this is ¥9,552.21 7)p 对应于指针类型,返回的值是指针的地址,以十六进制的形式来表示 例如:Format("this is %p",p);

VB Format函数用法及示例

Format 函数 返回Variant (String),其中含有一个表达式,它是根据格式表达式中的指令来格式化的。 语法 Format(expression[, format[, firstdayofweek[, firstweekofyear]]]) Format函数的语法具有下面几个部分: 设置值 firstdayofweek参数有下面设置: firstweekofyear参数有下面设置:

说明 如果在格式化数字时没有指定format,Format 会提供与Str 函数类似的功能,尽管它是国际化的。然而,以Format 作用在正数上不会保留正负号空间,而以Str 的话则会。 Format 函数示例 本示例显示用Format函数做格式化输出的不同用法。对于日期分隔号(/),时间分隔号(:),以及AM/ PM 等文本而言,其真正的显示格式会因计算机上的国际标准不同而有所差异。在开发阶段,日期与时间是以短日期的格式,配合代码的国际标准来显示的。而在运行时,短日期则是根据系统的国际标准而定,而系统的国际标准和代码的国际标准可能并不相同。本示例中是假设国际标准为English/United States。 MyTime 及 MyDate 在开发环境下,使用系统的短日期设置显示出来的。 Dim MyTime, MyDate, MyStr

MyTime = #17:04:23# MyDate = #January 27, 1993# ' 以系统设置的长时间格式返回当前系统时间。 MyStr = Format(Time, "Long Time") ' 以系统设置的长日期格式返回当前系统日期。 MyStr = Format(Date, "Long Date") MyStr = Format(MyTime, "h:m:s") ' 返回 "17:4:23"。 MyStr = Format(MyTime, "hh:mm:ss AMPM") ' 返回 "05:04:23 PM"。 MyStr = Format(MyDate, "dddd, mmm d yyyy") ' 返回 "Wednesday, Jan 27 1993"。 ' 如果没有指定格式,则返回字符串。 MyStr = Format(23) ' 返回 "23"。 ' 用户自定义的格式。 MyStr = Format(5459.4, "##,##0。00") ' 返回 "5,459.40"。 MyStr = Format(334。9, "###0。00") ' 返回 "334.90"。 MyStr = Format(5, "0。00%") ' 返回 "500.00%"。 MyStr = Format("HELLO", "<") ' 返回 "hello"。 MyStr = Format("This is it", ">") ' 返回 "THIS IS IT"。

C++ Format的用法总结

函数声明 function Format(const Format: string; const Args: array of const): string; overload; 函数功能 事实上Format方法有两个种形式,另外一种是三个参数的,主要区别在于它是线程安全的,但并不多用,所以这里只对第一个介绍。Format参数是一个格式字符串,用于格式化Args里面的值的。Args是一个变体数组,即它里面可以有多个参数,而且每个参数可以不同。例如: Format("my name is %6s","wind"); 返回的是:my name is wind 函数参数 Format里面可以写普通的字符串,比如"my name is" ,但有些格式指令字符具有特殊意义,比如"%6s" 格式指令具有以下的形式:"%" [index ":"] ["-"] [width] ["." prec] type 它是以"%"开始,而以type结束,type表示一个具体的类型。中间是用来格式化type类型的指令字符,是可选的。各个参数的含义与用途如下; [type] type参数可选的类型有d,u,f,e,g,n,m,p,s,x. 1) d 十进制数,表示一个整型值,u 和d一样是整型值,但它是无符号的,而如果它对应的值是负的,则返回时是一个2的32次方减去这个负数的绝对值。 例如:Format("this is %u",-2); 返回的是:this is 4294967294 2)f 对应浮点数 3)e科学表示法,对应整型数和浮点数 例如:Format("this is %e",-2.22); 返回的是:this is -2.220000E+000 4)g 这个只能对应浮点型,且它会将值中多余的数去掉 例如:Format("this is %g",02.200); 返回的是:this is 2.2 5)n 只能对应浮点型,将值转化为号码的形式,看一个例子就明白了 例如:Format("this is %n",4552.2176); 返回的是:this is 4,552.22 注意:一是,只表示到小数后两位 二是,即使小数没有被截断,它也不会也像整数部分一样有逗号来分开的 6)m 钱币类型,但关于货币类型有更好的格式化方法,这里只是简单的格式化,另外它只对应于浮点值 例如:Format("this is %m",9552.21);

VBA的Format函数

Format(值,格式(可选参数)) 一、数字格式: 1、General Number:普通数字,可以用来去掉千位分隔号和无效0 。如:Format("1,234,567.80", "General Number")="1234567.8" 2、Currency:货币类型,可添加千位分隔号和货币符号,保留两位小数点。如:Format(1234567, "Currency")="¥1,234,567.00" 3、Fixed:格式为带两位小数的数字。 如:Format("123456", "Fixed")=123456.00 4、Standard:标准,即带千位分隔号和两位小数。 如:Format("123456", "Standard")=123,456.00 5、Percent:带两位小数点的百分数。 如:Format("123456", "Percent")=12345600.00 6、Scientific:科学记数法。 如:Format("1234567", "Scientific")=1.23E+06 7、Yes/No:当数值为非0 数字时返回Yes ,否则返回No 。 如:Format(-3.14, Yes/No")="Yes" Format(0, "Yes/No")="No" 8、True/False:当数值为非0 数字时返回True ,否则返回False 。 与第7点类似,这里不再举例。 9、On/Off:当数值为非0 数字时返回On ,否则返回Off 。 与第7点类似,这里不再举例。 10、""或省略:返回原值,但去除了小数点前后的无效0 。 如:Format("0.1030", "")=".103" 11、0:占位格式化,不足位时补足0 。 如:Format(123, 0000")="0123" Format$(12.3, "0.00")="12.30" 12、#:占位格式化,不足位时不补足0 。 如:Format(123, "####")=123 13、%:转化为百分数,一个%代表乘以100 。 如:Format(1.23, "0.00%")=123.00%

StringFormat() 用法

String.format函数使用方法介绍 关键字: string.format 转自:https://www.doczj.com/doc/c914734289.html,/andycpp/archive/2007/08/18/1749700.aspx 在JDK1.5中,String类增加了一个非常有用的静态函数 format(String format, Objece... argues),可以将各类数据格式化为字符串并输出。其中format参数指定了输出的格式,是最复杂也是最难掌握的一点,而argues则是一系列等待被格式化的对象。该函数对c语言中printf函数的用法进行了一定的模仿,因此有c语言基础的人学起来会轻松许多。下面我们着重讨论一下format 参数的格式及含义。 format参数中可以包含不需要转化的字符串,这些字符串是你写什么,最终就输出什么。同时还包含一些特殊格式的内容,来指定将哪个对象来转换,以及转换成什么形式。这种特殊的格式通通 以%index$开头,index从1开始取值,表示将第index个参数拿进来进行格式化。这一点比c语言要强一点,c语言只能按照参数的顺序依次格式化,而java可以选择第n个参数来格式化。由于该函数可以对任意一个对象进行格式化,不同的对象适用的参数也不同,因此我们下面分类来讨论。 1.对整数进行格式化:%[index$] [标识][最小宽度]转换方式

我们可以看到,格式化字符串由4部分组成,其中%[index$]的含义我们上面已经讲过,[最小宽度]的含义也很好理解,就是最 终该整数转化的字符串最少包含多少位数字。我们来看看剩下2个部分的含义吧: 标识: '-' 在最小宽度内左对齐,不可以与“用0填充”同时使用 '#' 只适用于8进制和16进制,8进制时在结果前面增加一个0,16进制 时在结果前面增加0x '+' 结果总是包括一个符号(一般情况下只适用于10进制,若对象为BigInteger才可以用于8进制和16进制) ' ' 正值前加空格,负值前加负号(一般情况下只适用于10进制,若对 象为BigInteger才可以用于8进制和16进制) '0' 结果将用零来填充 ',' 只适用于10进制,每3位数字之间用“,”分隔 '(' 若参数是负数,则结果中不添加负号而是用圆括号把数字括起来(同 ‘+’具有同样的限制) 转换方式: d-十进制 o-八进制 x或X-十六进制 上面的说明过于枯燥,我们来看几个具体的例子。需要特别注意的一点是:大部分标识字符可以同时使用。 System.out.println(String.format("%1$,09d", -3123)); System.out.println(String.format("%1$9d", -31)); System.out.println(String.format("%1$-9d", -31)); System.out.println(String.format("%1$(9d", -31)); System.out.println(String.format("%1$#9x", 5689)); //结果为: //-0003,123

VB中format函数的使用方法

VB中format函数的使用方法 格式:Format $ (数值表达式,格式字符串) 功能:按“格式字符串”指定的格式输出“数值表达式”的值。如果省略“格式字符串”,则Format$函数的功能与STR函数基本相同,唯一的差别是,当把正数转换成字符串时,STR函数在字符串前面留有一个空格,而Format函数则不留空格。 ⑴#:表示一个数字位。#的个数决定了显示区段的长度。如果要显示的数值的位数小于格式字符串指定的区段长度,则该数值靠区段的左

端显示,多余的位不补0。如果要显示的数值的位数大于指定的区段长度,则数值照原样显示。 例如: Print format$(25634,”########”) Print format$(25634,”####”) ⑵0:与#功能相同,只是多余的位以0补齐。 Print format$(25634,”00000000”) Print format$(25634,”0000”) ⑶.:显示小数点。小数点与#或0结合使用,可以放在显示区段的任何位置。根据格式字符串的位置,小数部分多余的数字按四舍五入处理。

Print format$(256.345,”##.####”) Print format$(256.345,”###.##”) Print format$(256.345,”00.0000”) Print format$(256.345,”000.00”) ⑷,:逗号。在格式字符串中插入逗号起到“分位”的作用,即从小数点左边一位开始,每3位用一个逗号分开。逗号可以放在小数点左边的任何位置(不要放在头部,也不要紧靠小数点)。 Print format$(12345.78,”##,##.#”) Print format$(12345.78,”###,#.#”) ⑸%:百分号。通常放在格式字符串的尾部,用来输出百分号。Print format$(256.345,”00.0000%”)

vb中format函数定义

vb中format函数定义Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强制返回为文本 -------------------------------- 数字类型的格式化 -------------------------------- 固定格式参数: General Number 普通数字,如可以用来去掉千位分隔号format$("100,123.12","General Number") 返回值100123.12 Currency 货币类型,可添加千位分隔号和货币符号format$("100123.12","Currency") 返回值¥100,123.12 Fixed 格式为带两位小数的数字 format$("100123","Fixed") 返回值100123.00 Standard 标准,即带千位分隔号和两位小数 format$("100123","Standard") 返回值100,123.00 Percent 百分数 format$("100123","Percent") 返回值10012300.00% Scientific 科学记数法 format$("100123","Scientific") 返回值1.00E+05 Yes/No 当值为0时返回NO,否则返回YES format$("100123","Yes/No") 返回值Yes True/False 当值为0时返回False,否则返回True format$("100123","True/False") 返回值True On/Off 当值为0时返回Off,否则返回On format$("100123","Yes/No") 返回值On 自定义格式参数 "" 不进行格式化返回值原值 0 占位格式化,不足补0 format$("100123","0000000") 返回值0100123 # 占位格式化,不足时不补0 format$("100123","#######") 返回值100123

VBA格式化字符串 VBA函数Format及工作表函数Text

VBA 格式化字符串vba函数Format 及工作表函数Text VBA 的Format 函数与工作表函数TEXT 用法基本相同,但功能更加强大,许多格式只能用于VBA 的Format 函数,而不能用于工作表函数TEXT ,以下是本人归纳的几点用法,希望对学习VBA有所裨益。 Format(值,格式(可选参数)) 一、数字格式: 1、General Number:普通数字,可以用来去掉千位分隔号和无效0 。 如:Format("1,234,567.80", "General Number")="1234567.8" 2、Currency:货币类型,可添加千位分隔号和货币符号,保留两位小数点。 如:Format(1234567, "Currency")="¥1,234,567.00" 3、Fixed:格式为带两位小数的数字。 如:Format("123456", "Fixed")=123456.00 4、Standard:标准,即带千位分隔号和两位小数。 如:Format("123456", "Standard")=123,456.00 5、Percent:带两位小数点的百分数。 如:Format("123456", "Percent")=12345600.00 6、Scientific:科学记数法。 如:Format("1234567", "Scientific")=1.23E+06 7、Yes/No:当数值为非0 数字时返回Yes ,否则返回No 。 "如:Format(-3.14, "Yes/No")="Yes" Format(0, "Yes/No")="No" 8、True/False:当数值为非0 数字时返回True ,否则返回False 。 与第7点类似,这里不再举例。 9、On/Off:当数值为非0 数字时返回On ,否则返回Off 。 与第7点类似,这里不再举例。 10、""或省略:返回原值,但去除了小数点前后的无效0 。 如:Format("0.1030", "")=".103" 11、0:占位格式化,不足位时补足0 。 "如:Format(123, "0000")="0123" Format$(12.3, "0.00")="12.30" 12、#:占位格式化,不足位时不补足0 。 如:Format(123, "####")=123 13、%:转化为百分数,一个%代表乘以100 。 如:Format(1.23, "0.00%")=123.00% Format(1.23, "0.00%%")=12300.00%% 14、\:强制显示某字符。 如:Format$(12.34, "\R\M\B .00")="RMB 12.34" 15、;(分号):分段显示不同格式 比如要把正数显示为“正”,负数显示为“负”,0显示为“零”,参数为"正;负;零" 如:Format$(123, "正;负;零")="正" 第1段为正数格式,第2段为负数格式,第3段为0格式。 二、日期和时间格式:

相关主题
文本预览
相关文档 最新文档