rfmtlong() 函数使用格式化掩码来将 C long 值转换为字符串。
语法
mint rfmtlong(lng_val, fmtstring, outbuf)
int4 lng_val;
char *fmtstring;
char *outbuf;
lng_val
rfmtlong() 将其转换为字符值的 int4 整数。
fmtstring
指向包含 lng_val 中的值的格式化掩码的字符缓冲区的指针。
outbuf
指向接收 lng_val 中的值的格式化的字符串的字符缓冲区的指针。
用法
rfmtlong() 函数的 fmtstring 参数指向数值的格式化掩码,其包含描述
如何格式化 long integer 值的字符。
当您使用 rfmtlong() 来格式化 MONEY 值时,该函数使用 DBMONEY 环境变量指
定的货币符号。如果您未设置此环境变量,则 rfmtlong() 使用客户机语言环境定义的货币
符号。缺省的语言环境 US English 定义货币符号如同您将 DBMONEY 设置为 “$,.” 一
样。
当您使用有多字节字符集的非缺省的语言环境时,rfmtlong() 支持格式字符串中的多
字节字符。
返回代码
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 875 -
0
转换成功。
-1211
程序用尽内存(内存分配错误)。
-1217
格式字符串太大。
示例
demo 目录在文件 rfmtlong.ec 中包含此样例程序。
/*
* rfmtlong.ec *
The following program applies a series of format specifications to a series of longs and
displays the result of each format.
*/
#include
long lngs[] =
{
21020304,
334899312,
-334899312,
-12344455,
0
};
char *formats[] =
{
"################",
"$$$$$$$$$$$$$.##",
"(&,&&&,&&&,&&&.)",
"<<<<,<<<,<<<,<<<",
"$************.**",
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 876 -
0
};
char result[41];
main()
{
mint x;
mint s = 0, f;
printf("RFMTLONG Sample ESQL Program running.\n\n");
while(lngs[s]) /* for each long in lngs[] */
{
printf("Long Number = %d\n", lngs[s]);
f = 0;
while(formats[f]) /* format with each of formats[] */
{
if (x = rfmtlong(lngs[s], formats[f], result))
{
printf("Error %d in formatting %d using %s.\n",
x, lngs[s], formats[f]);
break;
}
/*
* Display result and bump to next format (f++)
*/
result[40] = '\0';
printf(" Format String = '%s'\t", formats[f++]);
printf("\tResult = '%s'\n", result);
}
++s; /* bump to next long */
printf("\n"); /* separate display groups */
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 877 -
}
printf("\nRFMTLONG Sample Program over.\n\n");
}
输出
RFMTLONG ESQL Sample Program running.
Long Number = 21020304
Format String = '################'
Result = ' 21020304'
Format String = '$$$$$$$$$$$$$.##'
Result = ' $21020304.00'
Format String = '(&,&&&,&&&,&&&.)'
Result = ' 00021,020,304. '
Format String = '<<<<,<<<,<<<,<<<'
Result = '21,020,304'
Format String = '$************.**'
Result = '$****21020304.00'
Long Number = 334899312
Format String = '################'
Result = ' 334899312'
Format String = '$$$$$$$$$$$$$.##'
Result = ' $334899312.00'
Format String = '(&,&&&,&&&,&&&.)'
Result = ' 00334,899,312. '
Format String = '<<<<,<<<,<<<,<<<'
Result = '334,899,312'
Format String = '$************.**'
Result = '$***334899312.00'
Long Number = -334899312
Format String = '################'
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 878 -
Result = ' 334899312'
Format String = '$$$$$$$$$$$$$.##'
Result = ' $334899312.00'
Format String = '(&,&&&,&&&,&&&.)'
Result = '(00334,899,312.)'
Format String = '<<<<,<<<,<<<,<<<'
Result = '334,899,312'
Format String = '$************.**'
Result = '$***334899312.00'
Long Number = -12344455
Format String = '################'
Result = ' 12344455'
Format String = '$$$$$$$$$$$$$.##'
Result = ' $12344455.00'
Format String = '(&,&&&,&&&,&&&.)'
Result = '(00012,344,455.)'
Format String = '<<<<,<<<,<<<,<<<'
Result = '12,344,455'
Format String = '$************.**'
Result = ' $****12344455.00'
RFMTLONG Sample Program over.