📄 fig16_14.cpp
字号:
// Fig. 16.14: fig16_14.cpp
// Example using a bit field
#include <iostream.h>
#include <iomanip.h>
struct BitCard {
unsigned face : 4;
unsigned suit : 2;
unsigned color : 1;
};
void fillDeck( BitCard * );
void deal( BitCard * );
int main()
{
BitCard deck[ 52 ];
fillDeck( deck );
deal( deck );
return 0;
}
void fillDeck( BitCard *wDeck )
{
for ( int i = 0; i <= 51; i++ ) {
wDeck[ i ].face = i % 13;
wDeck[ i ].suit = i / 13;
wDeck[ i ].color = i / 26;
}
}
// Output cards in two column format. Cards 0-25 subscripted
// with k1 (column 1). Cards 26-51 subscripted k2 in (column 2.)
void deal( BitCard *wDeck )
{
for ( int k1 = 0, k2 = k1 + 26; k1 <= 25; k1++, k2++ ) {
cout << "Card:" << setw( 3 ) << wDeck[ k1 ].face
<< " Suit:" << setw( 2 ) << wDeck[ k1 ].suit
<< " Color:" << setw( 2 ) << wDeck[ k1 ].color
<< " " << "Card:" << setw( 3 ) << wDeck[ k2 ].face
<< " Suit:" << setw( 2 ) << wDeck[ k2 ].suit
<< " Color:" << setw( 2 ) << wDeck[ k2 ].color
<< endl;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -