Vraag : Hoe ik output aan CString in plaats van het gebruiken van stringstream ss?

Ik heb één of andere hieronder code.  Wat het doet is dit:  Er zijn studentenA-G belast met een wedstrijd om een voorwerp te lanceren voor zover zij kunnen (gemeten in voeten).  Zij worden gegeven veelvoud proberen en het programma vindt hieronder alle die instanties wanneer er BANDEN in afstand, tussen 2 of meer verschillende studenten en output het aan het scherm wordt geworpen als zo zijn: />44 voeten
33 voeten E22 voeten D
The- programma de werken.  Nu, is wat ik zou willen doen in plaats van het outputting aan het scherm die stringstream ik gebruiken wil dat de output worden bevat in een geroepen CString csOutput.  De reden voor dit is dat ik CString zal nemen en het met één of andere andere reeds geschreven code zal gebruiken die ik heb.  Zo, hoe ik output aan CString csOutput?
" codeBody "
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:
#include 
#include 
#include 
#include 
#include 
#include 
#include 

het gebruiken van namespace norm;

struct StudentAttempt
{
   int. afstand;
   koord studentName;
};

bool cmpAttempts (recht verlaten StudentAttempt, StudentAttempt) {
   als (left.distance < right.distance) {
      ware terugkeer;
   }
   als anders (left.distance == right.distance) {
      als (left.studentName < right.studentName) {
         ware terugkeer;
      }
      anders
         valse terugkeer;
   }
   anders
      valse terugkeer;
}

isDistEqual bool (recht verlaten StudentAttempt, StudentAttempt) {
   terugkeer (left.distance == right.distance
      && left.studentName! = right.studentName);
}

size_t printAllEqual (const vector& v, const StudentAttempt& sa, stringstream& ss) {

  vector:: const_iterator i = v.begin ();
  size_t sz = 0;

  terwijl (I! = v.end ()) {

    als (isDistEqual (*i, sa)) {
    
      ss << i->studentName;
      ++sz;
    }

    ++i;
  }

  terugkeer sz;
}

int. leiding () {

   throwDist van StudentAttempt [] = {
      {50, „A“}, {22, „A“}, {16, „B“}, {44, „C“},
      {33, „D“}, {34, „E“}, {22, „F“}, {21, „G“},
      {49, „A“}, {5, „B“}, {2, „C“}, {22, „A“},
      {33, „B“}, {22, „C“}, {22, „D“}, {44, „E“},
   };

   set behandeld;

   int. len = sizeof (throwDist)/sizeof (throwDist [0]);
   vector dist (throwDist, throwDist + len);
   vector:: iterator het = dist.begin ();

   soort (dist.begin (), dist.end (), cmpAttempts);

   voor (; het! = dist.end (); it++) {

      stringstream ss;

      pair:: iterator, bool> p = handled.insert (it->distance);

      als (! p.second) ga verder; reeds behandeld //

      als (0 < printAllEqual (dist, *it, ss)) 
        cout << setw (2) << (*it) .distance 
           << „voeten:  “ << (*it) .studentName << ss.str () << endl;
   }

   
}

Antwoord : Hoe ik output aan CString in plaats van het gebruiken van stringstream ss?

Goed, alhoewel ik nog STL over MFC zou adviseren, kan dit ook worden gedaan, b.v.
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:
#include  
#include  
#include  
#include  
#include  
#include  

het gebruiken van namespace norm;

struct StudentAttempt
{
   int. afstand;
   koord studentName;
};

bool cmpAttempts (recht verlaten StudentAttempt, StudentAttempt) {
   als (left.distance < right="">& v, const streptokok StudentAttempt& sa, CString&) {

  vector:: const_iterator i = v.begin ();
  size_t sz = 0;

  terwijl (I! = v.end ()) {

    als (isDistEqual (*i, sa)) {
    
      streptokok += i->studentName;
      ++sz;
    }

    ++i;
  }

  terugkeer sz;
}

int. leiding () {

   throwDist van StudentAttempt [] = {
      {50, „A“},      {22, „A“},      {16, „B“},      {44, „C“},
      {33, „D“},      {34, „E“},      {22, „F“},      {21, „G“},
      {49, „A“},      {5, „B“},      {2, „C“},      {22, „A“},
      {33, „B“},      {22, „C“},      {22, „D“},      {44, „E“},
   };

   behandelde reeks;

   int. len = sizeof (throwDist)/sizeof (throwDist [0]);
   vector dist (throwDist, throwDist + len);
   vector:: iterator het = dist.begin ();

   soort (dist.begin (), dist.end (), cmpAttempts);

   voor (; het! = dist.end (); it++) {

      De streptokok van CString;

      paar:: iterator, bool> p = handled.insert (it->distance);

      als (! p.second) ga verder; reeds behandeld //

      als (0  < printAllEqual="">
           
Andere oplossingen  
 
programming4us programming4us