#include <iostream>
#include <string>
#include <sstream>
class Class {
public:
void setA(std::string s) {std::cout << "A: " << s << std::endl;}
void setB(std::string s) {std::cout << "B: " << s << std::endl;}
void setC(std::string s) {std::cout << "C: " << s << std::endl;}
void setD(std::string s) {std::cout << "D: " << s << std::endl;}
friend std::istream& operator>>(std::istream & input, Class cObj);
};
std::istream& operator>>(std::istream & input, Class cObj)
{
std::string temp;
while(temp!="TEST6"){
getline(input, temp, ',');
if(temp=="TEST1") cObj.setA(temp);
if(temp=="TEST3") cObj.setB(temp);
if(temp=="TEST5") cObj.setC(temp);
if(temp=="TEST6") cObj.setD(temp);
}
return input;
}
int main() {
std::stringstream ss("TEST1,TEST2,TEST3,TEST4,TEST5,TEST6");
Class classObj;
ss >> classObj;
std::cout << "Done" << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8c3N0cmVhbT4KCmNsYXNzIENsYXNzIHsKCXB1YmxpYzoKCXZvaWQgc2V0QShzdGQ6OnN0cmluZyBzKSB7c3RkOjpjb3V0IDw8ICJBOiAiIDw8IHMgPDwgc3RkOjplbmRsO30KCXZvaWQgc2V0QihzdGQ6OnN0cmluZyBzKSB7c3RkOjpjb3V0IDw8ICJCOiAiIDw8IHMgPDwgc3RkOjplbmRsO30KCXZvaWQgc2V0QyhzdGQ6OnN0cmluZyBzKSB7c3RkOjpjb3V0IDw8ICJDOiAiIDw8IHMgPDwgc3RkOjplbmRsO30KCXZvaWQgc2V0RChzdGQ6OnN0cmluZyBzKSB7c3RkOjpjb3V0IDw8ICJEOiAiIDw8IHMgPDwgc3RkOjplbmRsO30KCQoJZnJpZW5kIHN0ZDo6aXN0cmVhbSYgb3BlcmF0b3I+PihzdGQ6OmlzdHJlYW0gJiBpbnB1dCwgQ2xhc3MgY09iaik7Cn07CgpzdGQ6OmlzdHJlYW0mIG9wZXJhdG9yPj4oc3RkOjppc3RyZWFtICYgaW5wdXQsIENsYXNzIGNPYmopCnsKCXN0ZDo6c3RyaW5nIHRlbXA7Cgl3aGlsZSh0ZW1wIT0iVEVTVDYiKXsKCQlnZXRsaW5lKGlucHV0LCB0ZW1wLCAnLCcpOwoJCWlmKHRlbXA9PSJURVNUMSIpIGNPYmouc2V0QSh0ZW1wKTsKCQlpZih0ZW1wPT0iVEVTVDMiKSBjT2JqLnNldEIodGVtcCk7CgkJaWYodGVtcD09IlRFU1Q1IikgY09iai5zZXRDKHRlbXApOwoJCWlmKHRlbXA9PSJURVNUNiIpIGNPYmouc2V0RCh0ZW1wKTsKCX0KCglyZXR1cm4gaW5wdXQ7Cn0KCmludCBtYWluKCkgewoJc3RkOjpzdHJpbmdzdHJlYW0gc3MoIlRFU1QxLFRFU1QyLFRFU1QzLFRFU1Q0LFRFU1Q1LFRFU1Q2Iik7CglDbGFzcyBjbGFzc09iajsKCXNzID4+IGNsYXNzT2JqOwoJc3RkOjpjb3V0IDw8ICJEb25lIiA8PCBzdGQ6OmVuZGw7CgkKCXJldHVybiAwOwp9