学习使用点滴-1-字符处理

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

1.字符转换

1.1 相关类

lexical_cast

bad_lexical_cast

1.2 定义文件:#include <boost\lexical_cast.hpp>

1.3 功能简介:

用来进行类型转换的,字符串与数值之间的转换

1.4 使用举例:

Eclipse 3.0, GUN G++ , Winxp测试通过。

#include <iostream>

#include <boost\lexical_cast.hpp>

using namespace std;

main()

{

int i=100;

char* pstr = "10101";

cout<<"Before convert i is:"<<i<<endl;

i = boost::lexical_cast< int >(pstr);

cout<<"After convert i is:"<<i<<endl;

return 0;

}

//print: Before convert i is:100

// After convert i is:10101

1.5 其他:

转换的异常处理和一般的异常处理相同。

如:try

{

//进行转换

}

catch(bad_lexical_cast &)

{

//处理异常

}

2.格式化字符串

2.1 相关类

format

2.2 定义文件:#include <boost\format.hpp>

2.3 功能简介:

构建一个格式化的字符串,其中的某些字符是待定的,其可以以参数的形式写入。

2.4 使用举例:

Eclipse 3.0, GUN G++ , Winxp测试通过。

#include <iostream>

#include <boost\format.hpp>

#include <string>

using namespace std;

using boost::format;

using boost::io::group;

int main()

{

format fmt("%1% %2% %3% %4% %5% %6%\n");

//使用%1%进行参数替换,1代表第一个参数

string str;

int i=100;

cout<<fmt % 'g' % 'a' % 'l' % 'p' % 'h' % 'y'<<endl;

//%操作符压入参数

string s_tmp =boost::str(fmt);

//str()自由函数,fomat->string

//同样也可使用format.str();

cout << s_tmp;

return 0;

}

2.5 格式说明:

“$“的使用:后面加printf的格式控制符

“|“的使用:简化printf的格式控制符

1.无参数顺序:

format(“%5d %4s %5f“); //%后面直接加printf的格式控制符,参数顺序传入

format(“%|5| %|4| %|5|);//效果同上,自动判断d,s,f等控制符号

2.有参数顺序:

format(“%1% %2% %1%“);

format(“%1$5d %2$5s %1$5d);

format(“%|1$5| %|2$5| %|1$5|);//效果同上,自动判断d,s,f等控制符号

3.具体格式:

[ N$ ] [ flags ] [ 宽度] [ . 精度] type-char

Flag

Meaning

effect on internal stream

'-'

left alignment

N/A (applied later on the string)

'='

centered alignment

N/A (applied later on the string)

- note : added feature, not in printf -

'_'

internal alignment

sets internal alignment

- note : added feature, not in printf -

'+'

show sign even for positive numbers

sets showpos

'#'

show numerical base, and decimal point

sets showbase and showpoint

'0'

pad with 0's (inserted after sign or base indicator)

if not left-aligned, calls setfill('0') and sets internal

Extra actions are taken after stream conversion to handle user-defined output.

' '

if the string does not begin with + or -, insert a space before the converted string

N/A (applied later on the string)

Different to printf's behaviour : it is not affected by internal alignment

Type-Char

Meaning

effect on stream

p or x

hexadecimal output

sets hex

o

octal output

sets oct

e

scientific float format

sets floatfield bits to scientific

f

fixed float format

sets floatfield bits to fixed

g

general -default- float format

unset all floatfield bits

X, E or G

same effect as their lowercase counterparts, but using uppercase letters for number outputs. (exponents, hex digits, ..)

same effects as 'x', 'e', or 'g', plus uppercase

d, i or u

decimal type output

sets basefield bits to dec

s or S

string output

precision specification is unset, and its value goes to an internal field for later 'truncation'. (see precision explanation above)

c or C

1-character output

only the first character of the conversion string is used.

%

print the character %

N/A

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航