#include <iostream>
#include <string>
#include <array>
#include <cstring>
template<class e, class t, int N>
std::basic_istream<e,t>& operator>>(std::basic_istream<e,t>& in, const e(&str_lit)[N]) {
std::array<e, N-1> buffer; //get buffer
in >> std::ws; //skips whitespace
if (N)
in.read(&buffer[0], N-1); //read the rest
if (strncmp(&buffer[0], str_lit, N-1)) //if it failed
in.setstate(in.rdstate() | std::ios::badbit); //set the state
return in;
}
template<class e, class t>
std::basic_istream<e,t>& operator>>(std::basic_istream<e,t>& in, const e& char_lit) {
e buffer; //get buffer
in >> buffer; //read data
if (buffer != char_lit) //if it failed
in.setstate(in.rdstate() | std::ios::badbit); //set the state
return in;
}
//redirect mutable char arrays to their normal function
template<class e, class t, int N>
std::basic_istream<e,t>& operator>>(std::basic_istream<e,t>& in, e(&carray)[N]) {
return std::operator>>(in, carray);
}
int main()
{
int number;
char character;
char buffer[250];
float thing;
while (std::cin >> "begin " >> number >> 'a' >> character >> buffer >> thing)
std::cout << number << ' ' << character << ' ' << buffer << ' ' << thing << '\n';
std::cout << "Failed to read";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8YXJyYXk+CiNpbmNsdWRlIDxjc3RyaW5nPgogCnRlbXBsYXRlPGNsYXNzIGUsIGNsYXNzIHQsIGludCBOPgpzdGQ6OmJhc2ljX2lzdHJlYW08ZSx0PiYgb3BlcmF0b3I+PihzdGQ6OmJhc2ljX2lzdHJlYW08ZSx0PiYgaW4sIGNvbnN0IGUoJnN0cl9saXQpW05dKSB7CiAgICBzdGQ6OmFycmF5PGUsIE4tMT4gYnVmZmVyOyAvL2dldCBidWZmZXIKICAgIGluID4+IHN0ZDo6d3M7IC8vc2tpcHMgd2hpdGVzcGFjZQogICAgaWYgKE4pICAgICAgICAKICAgICAgICBpbi5yZWFkKCZidWZmZXJbMF0sIE4tMSk7IC8vcmVhZCB0aGUgcmVzdAogICAgaWYgKHN0cm5jbXAoJmJ1ZmZlclswXSwgc3RyX2xpdCwgTi0xKSkgLy9pZiBpdCBmYWlsZWQKICAgICAgICBpbi5zZXRzdGF0ZShpbi5yZHN0YXRlKCkgfCBzdGQ6Omlvczo6YmFkYml0KTsgLy9zZXQgdGhlIHN0YXRlCiAgICByZXR1cm4gaW47Cn0KdGVtcGxhdGU8Y2xhc3MgZSwgY2xhc3MgdD4Kc3RkOjpiYXNpY19pc3RyZWFtPGUsdD4mIG9wZXJhdG9yPj4oc3RkOjpiYXNpY19pc3RyZWFtPGUsdD4mIGluLCBjb25zdCBlJiBjaGFyX2xpdCkgewogICAgZSBidWZmZXI7ICAvL2dldCBidWZmZXIKICAgIGluID4+IGJ1ZmZlcjsgLy9yZWFkIGRhdGEKICAgIGlmIChidWZmZXIgIT0gY2hhcl9saXQpIC8vaWYgaXQgZmFpbGVkCiAgICAgICAgaW4uc2V0c3RhdGUoaW4ucmRzdGF0ZSgpIHwgc3RkOjppb3M6OmJhZGJpdCk7IC8vc2V0IHRoZSBzdGF0ZQogICAgcmV0dXJuIGluOwp9Ci8vcmVkaXJlY3QgbXV0YWJsZSBjaGFyIGFycmF5cyB0byB0aGVpciBub3JtYWwgZnVuY3Rpb24KdGVtcGxhdGU8Y2xhc3MgZSwgY2xhc3MgdCwgaW50IE4+CnN0ZDo6YmFzaWNfaXN0cmVhbTxlLHQ+JiBvcGVyYXRvcj4+KHN0ZDo6YmFzaWNfaXN0cmVhbTxlLHQ+JiBpbiwgZSgmY2FycmF5KVtOXSkgewoJcmV0dXJuIHN0ZDo6b3BlcmF0b3I+PihpbiwgY2FycmF5KTsKfQogCmludCBtYWluKCkKewogICAgICAgIGludCBudW1iZXI7CiAgICAgICAgY2hhciBjaGFyYWN0ZXI7CiAgICAgICAgY2hhciBidWZmZXJbMjUwXTsKICAgICAgICBmbG9hdCB0aGluZzsKICAgICAgICB3aGlsZSAoc3RkOjpjaW4gPj4gImJlZ2luICIgPj4gbnVtYmVyID4+ICdhJyA+PiBjaGFyYWN0ZXIgPj4gYnVmZmVyID4+IHRoaW5nKQogICAgICAgIAlzdGQ6OmNvdXQgPDwgbnVtYmVyIDw8ICcgJyA8PCBjaGFyYWN0ZXIgPDwgJyAnIDw8IGJ1ZmZlciA8PCAnICcgPDwgdGhpbmcgPDwgJ1xuJzsKICAgICAgICBzdGQ6OmNvdXQgPDwgIkZhaWxlZCB0byByZWFkIjsKICAgICAgICByZXR1cm4gMDsKfQ==