现在的位置: 首页 > 综合 > 正文

一个输出字符、数字和十六进制数的例子

2012年09月16日 ⁄ 综合 ⁄ 共 6142字 ⁄ 字号 评论关闭

 

#include <cstdlib>

#include <iostream>

using namespace std;

enum e1{dark, red};

enum flag{x=1,y=2,z=4,e=8};

void PrintChars();

void PrintIntChar();

void PrintInt();

void PrintHexdecimal();

void PrintHexdecimal2();

void PrintHexdecimalTest();

void PrintHexdecimalTest2();

int main(int argc, char *argv[])

{

cout<< "sizeof(bool) is " << sizeof( bool ) << endl;

cout<< "sizeof(char) is " << sizeof( char )<< endl;

cout<< "sizeof(int) is " << sizeof( int )<< endl;

cout<< "sizeof(double) is " << sizeof( double )<< endl;

cout<< "sizeof(e1) is " << sizeof( e1 )<< endl;

flag f1 = flag(5);

flag f3 = flag(z|e);

flag f4 = flag(99);

cout<< "sizeof(flag) is " << sizeof( flag )<< endl;

int *p;

cout<< "sizeof(pointer) is " << sizeof( p )<< endl;

int *pp;

cout<< "sizeof(pointer's pointer) is " << sizeof( pp )<< endl;

PrintChars();

PrintIntChar();

PrintInt();

PrintHexdecimal();

PrintHexdecimal2();

PrintHexdecimalTest();

PrintHexdecimalTest2();

}

void PrintChars()

{

cout<< "PrintChars() begin..." << endl;

for( int i = int('a') ; i < int('z') ; i++)

{

cout << char(i) << endl;

}

cout<< "PrintChars() end..." << endl;

}

void PrintIntChar()

{

cout<< "PrintIntChar() begin..." << endl;

for( int i = int('1') ; i < int('9') ; i++)

{

cout << char(i) << endl;

}

cout<< "PrintIntChar() end..." << endl;

}

void PrintInt()

{

cout<< "PrintInt() begin..." << endl;

for( int i = 1 ; i < 9 ; i++)

{

cout << i << endl;

}

cout<< "PrintInt() end..." << endl;

}

void PrintHexdecimal()

{

cout<< "PrintHexdecimal() begin..." << endl;

for( int i = 0x0 ; i < 0xff ; i++)

{

cout << i << endl;

}

cout<< "PrintHexdecimal() end..." << endl;

}

void PrintHexdecimal2()

{

cout<< "PrintHexdecimal2() begin..." << endl;

for( int i = 0x0 ; i < 0xff ; i++)

{

cout.setf(ios::showbase);

cout<<hex<<i<<endl;

}

cout<< "PrintHexdecimal2() end..." << endl;

}

void PrintHexdecimalTest()

{

cout<< "PrintHexdecimalTest() begin..." << endl;

for( int i = 0x0 ; i < 0xff ; i++)

{

cout.setf( ios::hex );

cout<<hex<<i<<endl;

}

cout<< "PrintHexdecimalTest() end..." << endl;

}

void PrintHexdecimalTest2()

{

cout<< "PrintHexdecimalTest2() begin..." << endl;

cout.setf(ios::showbase);

cout<<hex<<2123<<endl;

cout<< "PrintHexdecimalTest2() end..." << endl;

}

运行结果为:

sizeof(bool) is 1

sizeof(char) is 1

sizeof(int) is 4

sizeof(double) is 8

sizeof(e1) is 4

sizeof(flag) is 4

sizeof(pointer) is 4

sizeof(pointer's pointer) is 4

PrintChars() begin...

a

b

c

d

e

f

g

h

i

j

k

l

m

n

o

p

q

r

s

t

u

v

w

x

y

PrintChars() end...

PrintIntChar() begin...

1

2

3

4

5

6

7

8

PrintIntChar() end...

PrintInt() begin...

1

2

3

4

5

6

7

8

PrintInt() end...

PrintHexdecimal() begin...

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

PrintHexdecimal() end...

PrintHexdecimal2() begin...

0

0x1

0x2

0x3

0x4

0x5

0x6

0x7

0x8

0x9

0xa

0xb

0xc

0xd

0xe

0xf

0x10

0x11

0x12

0x13

0x14

0x15

0x16

0x17

0x18

0x19

0x1a

0x1b

0x1c

0x1d

0x1e

0x1f

0x20

0x21

0x22

0x23

0x24

0x25

0x26

0x27

0x28

0x29

0x2a

0x2b

0x2c

0x2d

0x2e

0x2f

0x30

0x31

0x32

0x33

0x34

0x35

0x36

0x37

0x38

0x39

0x3a

0x3b

0x3c

0x3d

0x3e

0x3f

0x40

0x41

0x42

0x43

0x44

0x45

0x46

0x47

0x48

0x49

0x4a

0x4b

0x4c

0x4d

0x4e

0x4f

0x50

0x51

0x52

0x53

0x54

0x55

0x56

0x57

0x58

0x59

0x5a

0x5b

0x5c

0x5d

0x5e

0x5f

0x60

0x61

0x62

0x63

0x64

0x65

0x66

0x67

0x68

0x69

0x6a

0x6b

0x6c

0x6d

0x6e

0x6f

0x70

0x71

0x72

0x73

0x74

0x75

0x76

0x77

0x78

0x79

0x7a

0x7b

0x7c

0x7d

0x7e

0x7f

0x80

0x81

0x82

0x83

0x84

0x85

0x86

0x87

0x88

0x89

0x8a

0x8b

0x8c

0x8d

0x8e

0x8f

0x90

0x91

0x92

0x93

0x94

0x95

0x96

0x97

0x98

0x99

0x9a

0x9b

0x9c

0x9d

0x9e

0x9f

0xa0

0xa1

0xa2

0xa3

0xa4

0xa5

0xa6

0xa7

0xa8

0xa9

0xaa

0xab

0xac

0xad

0xae

0xaf

0xb0

0xb1

0xb2

0xb3

0xb4

0xb5

0xb6

0xb7

0xb8

0xb9

0xba

0xbb

0xbc

0xbd

0xbe

0xbf

0xc0

0xc1

0xc2

0xc3

0xc4

0xc5

0xc6

0xc7

0xc8

0xc9

0xca

0xcb

0xcc

0xcd

0xce

0xcf

0xd0

0xd1

0xd2

0xd3

0xd4

0xd5

0xd6

0xd7

0xd8

0xd9

0xda

0xdb

0xdc

0xdd

0xde

0xdf

0xe0

0xe1

0xe2

0xe3

0xe4

0xe5

0xe6

0xe7

0xe8

0xe9

0xea

0xeb

0xec

0xed

0xee

0xef

0xf0

0xf1

0xf2

0xf3

0xf4

0xf5

0xf6

0xf7

0xf8

0xf9

0xfa

0xfb

0xfc

0xfd

0xfe

PrintHexdecimal2() end...

PrintHexdecimalTest() begin...

0

0x1

0x2

0x3

0x4

0x5

0x6

0x7

0x8

0x9

0xa

0xb

0xc

0xd

0xe

0xf

0x10

0x11

0x12

0x13

0x14

0x15

0x16

0x17

0x18

0x19

0x1a

0x1b

0x1c

0x1d

0x1e

0x1f

0x20

0x21

0x22

0x23

0x24

0x25

0x26

0x27

0x28

0x29

0x2a

0x2b

0x2c

0x2d

0x2e

0x2f

0x30

0x31

0x32

0x33

0x34

0x35

0x36

0x37

0x38

0x39

0x3a

0x3b

0x3c

0x3d

0x3e

0x3f

0x40

0x41

0x42

0x43

0x44

0x45

0x46

0x47

0x48

0x49

0x4a

0x4b

0x4c

0x4d

0x4e

0x4f

0x50

0x51

0x52

0x53

0x54

0x55

0x56

0x57

0x58

0x59

0x5a

0x5b

0x5c

0x5d

0x5e

0x5f

0x60

0x61

0x62

0x63

0x64

0x65

0x66

0x67

0x68

0x69

0x6a

0x6b

0x6c

0x6d

0x6e

0x6f

0x70

0x71

0x72

0x73

0x74

0x75

0x76

0x77

0x78

0x79

0x7a

0x7b

0x7c

0x7d

0x7e

0x7f

0x80

0x81

0x82

0x83

0x84

0x85

0x86

0x87

0x88

0x89

0x8a

0x8b

0x8c

0x8d

0x8e

0x8f

0x90

0x91

0x92

0x93

0x94

0x95

0x96

0x97

0x98

0x99

0x9a

0x9b

0x9c

0x9d

0x9e

0x9f

0xa0

0xa1

0xa2

0xa3

0xa4

0xa5

0xa6

0xa7

0xa8

0xa9

0xaa

0xab

0xac

0xad

0xae

0xaf

0xb0

0xb1

0xb2

0xb3

0xb4

0xb5

0xb6

0xb7

0xb8

0xb9

0xba

0xbb

0xbc

0xbd

0xbe

0xbf

0xc0

0xc1

0xc2

0xc3

0xc4

0xc5

0xc6

0xc7

0xc8

0xc9

0xca

0xcb

0xcc

0xcd

0xce

0xcf

0xd0

0xd1

0xd2

0xd3

0xd4

0xd5

0xd6

0xd7

0xd8

0xd9

0xda

0xdb

0xdc

0xdd

0xde

0xdf

0xe0

0xe1

0xe2

0xe3

0xe4

0xe5

0xe6

0xe7

0xe8

0xe9

0xea

0xeb

0xec

0xed

0xee

0xef

0xf0

0xf1

0xf2

0xf3

0xf4

0xf5

0xf6

0xf7

0xf8

0xf9

0xfa

0xfb

0xfc

0xfd

0xfe

PrintHexdecimalTest() end...

PrintHexdecimalTest2() begin...

0x84b

PrintHexdecimalTest2() end...

另外,引用一片关于输出时进制转换的一篇不错的文章:

cout.setf(ios::hex)等设置进制输出为什么没效果?

所属分类:C/C++ C++ 语言
-----------------------------------------
#include<iostream>
#include <iomanip>
using namespace std;
int main()
{
cout.setf(ios::showbase);
cout<<hex<<2123<<endl;
system("pause");
return 0;

这样的话可以转换进制的输出,但是换到下面的就没效果。
#include<iostream>
#include <iomanip>
using namespace std;
int main()
{
cout.setf(ios::showbase);
        cout.setf(ios::hex)
cout<<2123<<endl;
system("pause");
return 0;

我再DEV C++和Visual Studio 2005试过了都没有效果
----------------------------------------------------------------------
mymtom@fc6:src/csdn/cpp/ios$ cat setf.cpp
#include<iostream>
#include <iomanip>
using namespace std;
int main()
{
        cout.setf(ios::showbase);
        cout.setf(ios_base::hex, ios_base::basefield);
        cout << 2123 << endl;
        (void)getchar();
        return 0;

mymtom@fc6:src/csdn/cpp/ios$ ./setf
0x84b
原因:
除非知道当前没有设置基标志,否则 ios::setf(_IFlags) 不应和 ios::dec、ios::oct 或 ios::hex 的标志值一起使用。格式化的输入/输出函数和运算符假定只设置了一个基。改用 ios_base。例如,setf( ios_base::oct, ios_base::basefield ) 清除所有基信息并将基设置成八进制。
来自:
http://blog.csdn.net/sssxueren/archive/2004/12/29/233352.aspx

【上篇】
【下篇】

抱歉!评论已关闭.