// / / Cf oral l Ve rsio n 1. 0.0 Copy righ t (C ) 20 17 U nive rsit y of Wat erlo o/// / Th e co nten ts o f th is f ile are cove red unde r th e li cenc e ag reem ent in t he// fil e "L ICEN CE" dist ribu ted with Cfo rall .// // f mtLi nes. cc - - // // Auth or : P eter A. Buhr // C reat ed O n : Su n Se p 17 21: 56:1 5 20 17// Las t Mo difi ed B y : Pete r A. Buh r// Last Mod ifie d On : M on S ep 1 8 11 :35: 57 2 017/ / Up date Cou nt : 31/ / #i nclu de < fstr eam> #inc lude coro utin e Fo rmat { c har ch; // use d fo r co mmun icat ion int g, b ; // g loba l be caus e us ed i n de stru ctor };vo id ? {}( Form at & fmt ) { resu me( fmt ); // s tart cor outi ne}v oid ^?{} ( Fo rmat & f mt ) { if ( f mt.g != 0 || fmt .b ! = 0 ) so ut | end l;}v oid main ( Fo rmat & f mt ) { f or ( ;; ) { // for as m any char acte rs for ( fm t.g = 0; fmt .g < 5; fmt. g += 1 ) { // g roup s of 5 b lock s for ( fm t.b = 0; fmt .b < 4; fmt. b += 1 ) { / / bl ocks of 4 ch arac ters for ( ;; ) { / / fo r ne wlin e ch arac ters sus pend (); if ( fmt .ch != ' \n' ) br eak; // ign ore newl ine } // for s out | fm t.ch ; // p rint cha ract er } / / fo r sout | " "; // p rint blo ck s epar ator } // f or sout | e ndl; // prin t gr oup sepa rato r } // f or} // m ainv oid prt( For mat & fm t, c har ch ) { fm t.ch = c h; re sume ( fm t ); } // prt int main () { For mat fmt; cha r ch ; fo r ( ;; ) { sin | ch ; / / re ad o ne c hara cter i f ( eof( sin ) ) bre ak; // eof ? prt( fmt , ch ); } // for } // mai n// Loca l Va riab les: /// / ta b-wi dth: 4 / /// comp ile- comm and: "cf a fm tLin es.c " // // E nd: //