1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | #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==
-
upload with new input
-
result: Success time: 0s memory: 3020 kB returned value: 0
begin 456aPApple 3.14159 begin 789 a Z IMAMUCHLONGERSTRINGWIHTOUTWHITESPACE -9999999 begin 123 b / / 1.0
456 P Apple 3.14159 789 Z IMAMUCHLONGERSTRINGWIHTOUTWHITESPACE -1e+07 Failed to read


