// Class employee
#include <iostream>
#include <limits>
#include <cstdio>
using std:: cin ;
using std:: cout ;
using std:: endl ;
class emp {
int ecode;
char ename[ 20 ] ;
float basic_pay;
public :
void input( ) {
cin >> ecode;
cin .ignore ( ) ;
if ( ! cin .getline ( ename, 20 ) ) // <-- PROBLEM HERE
{
cout << "Name too long, trimmed to: " << ename << endl;
// clear the stream error flags and ignore rest of the line
cin .clear ( ) ;
cin .ignore ( std:: numeric_limits < int > :: max ( ) , '\n ' ) ;
}
// now this line will not fail
cin >> basic_pay;
}
float calc( float x) {
return x+ x/ 10 ;
}
void output( ) {
cout << "\n Emp. code: " << ecode;
cout << "\n Emp. name: " << ename;
cout << "\n Emp. basic pay: " << basic_pay;
cout << "\n Emp. net pay: " << calc( basic_pay) ;
}
} ;
int main( ) {
emp e1;
cout << "Enter details of employee:\n " ;
e1.input ( ) ;
cout << "\n Updated Profile:\n " ;
e1.output ( ) ;
return 0 ;
}
Ly8gQ2xhc3MgZW1wbG95ZWUKCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGxpbWl0cz4KI2luY2x1ZGUgPGNzdGRpbz4KCnVzaW5nIHN0ZDo6Y2luOwp1c2luZyBzdGQ6OmNvdXQ7CnVzaW5nIHN0ZDo6ZW5kbDsKCmNsYXNzIGVtcCB7CiAgICBpbnQgZWNvZGU7CiAgICBjaGFyIGVuYW1lWzIwXTsKICAgIGZsb2F0IGJhc2ljX3BheTsKCiAgICBwdWJsaWM6CiAgICAgICAgdm9pZCBpbnB1dCgpIHsKICAgICAgICAgICAgY2luID4+IGVjb2RlOwogICAgICAgICAgICBjaW4uaWdub3JlKCk7CiAgICAgICAgICAgIAoJCSAgICBpZiAoIWNpbi5nZXRsaW5lKGVuYW1lLCAyMCkpICAvLyA8LS0gUFJPQkxFTSBIRVJFCgkJICAgIHsKCQkgICAgICAgIGNvdXQgPDwgIk5hbWUgdG9vIGxvbmcsIHRyaW1tZWQgdG86ICIgPDwgZW5hbWUgPDwgZW5kbDsKCQkKCQkgICAgICAgIC8vIGNsZWFyIHRoZSBzdHJlYW0gZXJyb3IgZmxhZ3MgYW5kIGlnbm9yZSByZXN0IG9mIHRoZSBsaW5lCgkJICAgICAgICBjaW4uY2xlYXIoKTsKCQkgICAgICAgIGNpbi5pZ25vcmUoc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjptYXgoKSwgJ1xuJyk7CgkJICAgIH0KCQkKCQkgICAgLy8gbm93IHRoaXMgbGluZSB3aWxsIG5vdCBmYWlsCgkJICAgIGNpbiA+PiBiYXNpY19wYXk7CiAgICAgICAgfQogICAgICAgIGZsb2F0IGNhbGMoIGZsb2F0IHgpIHsKICAgICAgICAgICAgcmV0dXJuIHgreC8xMDsKICAgICAgICB9CiAgICAgICAgdm9pZCBvdXRwdXQoKSB7CiAgICAgICAgICAgIGNvdXQgPDwgIlxuIEVtcC4gY29kZTogIiA8PCBlY29kZTsKICAgICAgICAgICAgY291dCA8PCAiXG4gRW1wLiBuYW1lOiAiIDw8IGVuYW1lOwogICAgICAgICAgICBjb3V0IDw8ICJcbiBFbXAuIGJhc2ljIHBheTogIiA8PCBiYXNpY19wYXk7CiAgICAgICAgICAgIGNvdXQgPDwgIlxuIEVtcC4gbmV0IHBheTogIiA8PCBjYWxjKCBiYXNpY19wYXkpOwogICAgICAgIH0KfTsKCmludCBtYWluKCkgewogICAgZW1wIGUxOwogICAgY291dCA8PCAiRW50ZXIgZGV0YWlscyBvZiBlbXBsb3llZTpcbiI7CiAgICBlMS5pbnB1dCgpOwogICAgY291dCA8PCAiXG5VcGRhdGVkIFByb2ZpbGU6XG4iOwogICAgZTEub3V0cHV0KCk7CiAgICByZXR1cm4gMDsKfQ==