fig16_14.cpp

来自「经典vc教程的例子程序」· C++ 代码 · 共 48 行

CPP
48
字号
// 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 + =
减小字号Ctrl + -
显示快捷键?