C-ohjelmoinnin harjoitustyö Launo Tuuri, 1998 Tavutusohjelma =============== Käyttö: tavuta [-t] [-pN] [tiedosto] ------- [-t] Tasataan oikeanpuoleinen marginaali (oletusarvoisesti ei tasata) [-pN] Rivinpituus, N merkkiä. Jos ei annettu, oletuspituus on 75 merkkiä. Sallitu alue 15...255. [tiedosto] Luettavan tiedoston nimi. Anna kerrallaan vain yksi tiedosto. (parametrien järjestyksellä ei ole väliä) Esim: ./tavuta ----- lue stdin:iä, tulosta stdout:ille, rivinpituus 75, ei oikean marginaalin tasausta ./tavuta -t -p50 foo.txt > bar.txt tasaa oikea marginaali, aseta rivinpituudeksi 50, lue tiedostosta foo.txt, tulosta tiedostoon bar.txt Kuvaus: Ohjelma lukee riveittäin joko stdin:iä tai tiedostoa, jos sellai- ------- nen on annettu, muotoilee kappaleet halutun pituisiksi ja halut- taessa tasaa oikean marginaalin. Tarvittaessa ohjelma tavuttaa rivinloppuisen sanan. Annettaessa tekstiä ohjelman muotoiltavaksi tulee huomata seuraavaa: - kappaleitten välillä tulee aina olla vähintään yksi tyhjä rivi - muotoillessaan kappaleita ohjelma tulostaa vain yhden välilyönti- merkin jokaisen sanan väliin riippumatta siitä, kuinka monilla ja minkälaisilla merkeillä sana alunperin oli erotettu - ohjelma tavuttaa vain sellaiset sanat, jotka sisältävät tavallisia aakkosia ja välimerkkejä. Jos sanaa ei voi tavuttaa, ja se on liian pitkä mahtuakseen annetulle rivinpituudelle, katkaistaan sana varoittaen tästä stderr:iille tulostetulla ilmoituksella ja ääni- merkillä tulossa: (?) ------------- - erillisessä tiedostossa sanalista vieraskielisistä sanoista, joita ei saa tavuttaa, esim. Steiner, Porsche jne... - parametri, jolla tavutuksen saisi kokonaan pois päältä ( = pelkkä muotoilu)