#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main() {
std::stringstream file{"0.12000\n0.12000\n"};
std::stringstream ss;
std::string str;
float f1, f2;
std::getline (file, str);
ss.str(str);
ss >> f1;
if (ss.eof())
std::cout << "eof reached after the extraction !!!!!"<<std::endl;
std::getline (file, str);
ss.clear();
ss.str(str);
ss >> f2; //when packed inside if(), evalueates to false - but why it fails?
std::cout<<"str = "<<str<<"\n";
std::cout<<"ss.str() = "<<ss.str()<<"\n";
std::cout<<"f1 = "<<f1<<"\nf2 = "<<f2<<"\n"; // your code goes here
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8c3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewoJc3RkOjpzdHJpbmdzdHJlYW0gZmlsZXsiMC4xMjAwMFxuMC4xMjAwMFxuIn07CiAgICBzdGQ6OnN0cmluZ3N0cmVhbSBzczsKICAgIHN0ZDo6c3RyaW5nIHN0cjsKICAgIGZsb2F0IGYxLCBmMjsKCglzdGQ6OmdldGxpbmUgKGZpbGUsIHN0cik7IAoJc3Muc3RyKHN0cik7CglzcyA+PiBmMTsKCWlmIChzcy5lb2YoKSkKICAgCQlzdGQ6OmNvdXQgPDwgImVvZiByZWFjaGVkIGFmdGVyIHRoZSBleHRyYWN0aW9uICEhISEhIjw8c3RkOjplbmRsOyAKCglzdGQ6OmdldGxpbmUgKGZpbGUsIHN0cik7IAoJc3MuY2xlYXIoKTsgCglzcy5zdHIoc3RyKTsKCXNzID4+IGYyOyAvL3doZW4gcGFja2VkIGluc2lkZSBpZigpLCBldmFsdWVhdGVzIHRvIGZhbHNlIC0gYnV0IHdoeSBpdCBmYWlscz8KCgoJc3RkOjpjb3V0PDwic3RyID0gIjw8c3RyPDwiXG4iOwoJc3RkOjpjb3V0PDwic3Muc3RyKCkgPSAiPDxzcy5zdHIoKTw8IlxuIjsKCXN0ZDo6Y291dDw8ImYxID0gIjw8ZjE8PCJcbmYyID0gIjw8ZjI8PCJcbiI7CS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCXJldHVybiAwOwp9