Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: C++
Expertise: Beginner
Aug 15, 2000

Vectors Containing Arrays

Question:
I've got a struct which is declared as having two fields:

int position;
char tile-id[6];

When I use this in a vector, I can use the [] notation to initialise the position int OK and can then check this with a cout command, but when I do the same with the array it compiles OK but I can't get it to print the contents onscreen.

The initialisation code fragments are:

Row1[0].position=1; 
cout << Row1[0].position; // this works ok

Row1[0].tile_id="EEEEE"; cout << Row1[0].tile_id; this won't work

Answer:
Change the type of tile_id to std::string (remember to #include as well). std::string defines an overloaded version of operator=. Therefore, the second assignmnet will work as expected. Alternatively, if you prefer to retain the type of tile_id as an array of six chars, use the standard C function strcpy() instead of the assignment operator:

#include  

strcpy(Row1[0].tile_id, "EEEEE");

DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date