Mình có 2 đoạn code sau:
std::string temp;
std::string line1 = "aaa";
std::string line2 = "bbb";
std::stringstream os(line1);
os>>temp;
os.clear();
os<<line2; //(I)
os>>temp; //temp vẫn là "aaa"
và
std::string temp;
std::string line1 = "aaa";
std::string line2 = "bbb";
std::stringstream os;
os<<line1;
os>>temp;
os.clear()
os<<line2; //(II)
os>>temp; //temp mang giá trị "bbb"
Mình có thử debug thì sau khi thực hiện lệnh tại vị trí (I) thì os là “bbb”, còn vị trí 2 thì os là “aaabbb”. Tại sao lại có sự khác nhau về os và temp như vậy, và tạo sao temp của đoạn code 1 lại là “aaa”. Mình biết cách mình hỏi hơi khó hiểu. Mong mọi người giải thích giúp mình!