The printf() function expects the old "array of char" style strings, but you are giving it the address of an object. Try this instead: printf( "%i %s ", cards[i].card, cards[i].suit.c_str() );
However, since this is C++, you shouldn't be using printf() at all. The best way is to say: cout << cards[i].card << ' ' << cards[i].suit << ' ';