#include #include #include void istream_cstr(void) { enum { size = 999, rsize = size - 1 }; // string size, read size char s1[size], s2[size], s3[size], si[size]; sin | wdi(size,rsize,s1) | wdi(size,rsize,s2) | wdi(size,rsize,s3); sout | s1; sout | s2; sout | s3; for(;;) { sin | wdi(size,rsize,si); if (si[0] == '=') break; sout | si; } } string accumulator; void reset_otherStringAction(void) { accumulator = ""; } void step_otherStringAction(void) { string localAction = "--"; accumulator += localAction(0,1); sout | accumulator; } void istream_string_res(void) { string_res s1, s2, s3, si; sin | s1 | s2 | s3; sout | s1; step_otherStringAction(); sout | s2; step_otherStringAction(); sout | s3; step_otherStringAction(); for(;;) { sin | si; if (size(si) > 0 && si[0] == '=') break; sout | si; step_otherStringAction(); } } void istream_string(void) { string s1, s2, s3, si; sin | s1 | s2 | s3; sout | s1; step_otherStringAction(); sout | s2; step_otherStringAction(); sout | s3; step_otherStringAction(); for(;;) { sin | si; if (size(si) > 0 && si[0] == '=') break; sout | si; step_otherStringAction(); } } int main() { istream_cstr(); sout | "="; istream_string_res(); sout | "="; reset_otherStringAction(); istream_string(); }