{"id":3938,"date":"2018-09-02T18:00:49","date_gmt":"2018-09-02T16:00:49","guid":{"rendered":"https:\/\/blue.pri.ee\/ttu\/?page_id=3938"},"modified":"2025-06-20T20:46:46","modified_gmt":"2025-06-20T18:46:46","slug":"printf-kasutamine","status":"publish","type":"page","link":"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/printf-kasutamine\/","title":{"rendered":"printf kasutamine"},"content":{"rendered":"<p>J\u00e4rgnevalt on toodud v\u00e4lja mitmeid n\u00e4iteid erinevatest printf funktsiooni kasutusest. K\u00f5iki koodin\u00e4iteid soovitan kopeerida ning proovida enda arvutis, kasutades selleks kopeerimise t\u00f6\u00f6riista tekstikasti \u00fclaosas. Mitmete koodin\u00e4idete puhul on toodud ka esile tegevusi, mida ei tasuks teha koos soovituste ja alternatiivsete lahendustega. N\u00e4ite juurde kuulub reeglina selgitav kommentaar.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/printf-kasutamine\/#Lihtteksti_kuvamine\" >Lihtteksti kuvamine<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/printf-kasutamine\/#Muutujatest_vaartuste_trukkimine\" >Muutujatest v\u00e4\u00e4rtuste tr\u00fckkimine<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/printf-kasutamine\/#Polsterdamine_ja_joondamine\" >Polsterdamine ja joondamine<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/printf-kasutamine\/#Kasulikke_trikke\" >Kasulikke trikke<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Lihtteksti_kuvamine\"><\/span>Lihtteksti kuvamine<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<pre class=\"toolbar:1 lang:c decode:true\" title=\"N\u00e4ide 1\">#include &lt;stdio.h&gt;\r\n\r\nint main(void)\r\n{\r\n    printf(\"Hello!\");\r\n    printf(\"How are you?\");\r\n    return 0;\r\n}<\/pre>\n<p>printf() funktsioonil pole omane vahetada automaatselt rida millele teksti kuvatakse.\u00a0 Reavahetus tuleb k\u00e4sitsi sisse kirjutada kasutades eris\u00fcmbolit \\n. Alternatiivina on v\u00f5imalik ka kasutada funktsiooni puts().<\/p>\n<pre class=\"toolbar:1 lang:c decode:true\" title=\"N\u00e4ide 2\">#include &lt;stdio.h&gt;\r\n\r\nint main(void)\r\n{\r\n    printf(\"Hello!\\n\");\r\n    printf(\"How are you?\\n\");\r\n    return 0;\r\n}\r\n<\/pre>\n<p>K\u00e4sureaprogrammide puhul on oluline ka viimase tr\u00fckitava rea j\u00e4rele panna reavahetus. Programmi l\u00f5ppedes seda automaatselt ei tee ning see v\u00f5ib tekitada segadust tulemusest arusaamisel kui programm k\u00e4ivitatakse otse k\u00e4surealt.<\/p>\n<pre class=\"toolbar:1 lang:c decode:true\" title=\"N\u00e4ide 3\">#include &lt;stdio.h&gt;\r\n\r\nint main(void)\r\n{\r\n    printf(\"Hello!\\nHow are you?\\n\");\r\n    return 0;\r\n}\r\n<\/pre>\n<p>Reavahetusi v\u00f5ib \u00fche funktsiooni v\u00e4ljakutse sisse pookida mitmeid.<\/p>\n<pre class=\"toolbar:1 lang:c decode:true\" title=\"N\u00e4ide 4\">#include &lt;stdio.h&gt;\r\n\r\nint main(void)\r\n{\r\n    puts(\"Hello!\");\r\n    puts(\"How are you?\");\r\n    return 0;\r\n}\r\n<\/pre>\n<p>Alternatiivina saab kasutada ka funktsiooni puts(). Funktsiooni puts() teeb eriliseks see, et ta on m\u00f5eldud vaid lihtteksti kuvamiseks ilma mingisuguse formaadita &#8211; st me ei saa nt panna teksti sisse muutujatest v\u00e4\u00e4rtusi. K\u00fcll aga on reavahetused automaatsed.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Muutujatest_vaartuste_trukkimine\"><\/span>Muutujatest v\u00e4\u00e4rtuste tr\u00fckkimine<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>V\u00e4\u00e4rtuste kuvamine on iseenesest elementaarne tegevus, milleks piisab vaid teadmisest mis andmet\u00fc\u00fcpi me soovitud v\u00e4\u00e4rtus omab, kuhu me ta paigutada soovime ning kus ta asub.<\/p>\n<pre class=\"toolbar:1 lang:c decode:true\">#include &lt;stdio.h&gt;\r\n\r\nint main(void)\r\n{\r\n    char name[] = \"Dolores\";\r\n    int number = 21;\r\n    printf(\"%s! You're number %d on the waiting list\\n\", name, number);\r\n    return 0;\r\n}\r\n<\/pre>\n<p>Esimese n\u00e4itena kuvame \u00fche reaga kahe erineva muutuja v\u00e4\u00e4rtused. Oluline on j\u00e4lgida, et k\u00f5ik formaadid oleksid valitud \u00f5igesti (nt %d t\u00e4isarv, %s tekst) ning muutujad kust v\u00e4\u00e4rtusi otsitakse oleksid komadega eraldatud ning \u00f5iges j\u00e4rjekorras. Muutujate v\u00e4\u00e4rtusi paigutatakse teksti sisse vasakult paremale vastavalt kohtadesse mis on selleks ette n\u00e4htud. Eksides t\u00fc\u00fcbiga v\u00f5i j\u00e4rjekorraga saad kas kompilaatorilt hoiatava veateate v\u00f5i kuvatakse vigane tulemus programmi k\u00e4ivitamisel.<\/p>\n<pre class=\"lang:c decode:true\">#include &lt;stdio.h&gt;\r\n\r\nint main(void)\r\n{\r\n    float value = 3.33f;\r\n    printf(\"The value is %f\\n\", value);\r\n    printf(\"The value with limited precision is %.2f\\n\", value);\r\n    return 0;\r\n}\r\n<\/pre>\n<p>Keerulisem on olukord murdarvudega. Sageli on nende esitust\u00e4psust m\u00f5istlik piirata, et v\u00e4ljund j\u00e4\u00e4ks kasutajale m\u00f5istetavaks.<\/p>\n<pre class=\"lang:c decode:true\">#include &lt;stdio.h&gt;\r\n\r\nint main(void)\r\n{\r\n    float value = 994.331f;\r\n    printf(\"The value is %f\\n\", value);\r\n    return 0;\r\n}<\/pre>\n<p><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2018\/09\/round.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-3944 aligncenter\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2018\/09\/round.png\" alt=\"\" width=\"283\" height=\"21\" \/><\/a><\/p>\n<p>Samuti tasub olla ettevaatlik ka murdarvude esitamist\u00e4psusega &#8211; arvutid ei ole v\u00f5imelised k\u00f5iki murdarve t\u00e4pselt esitama. Abiks taaskord kas t\u00e4psuse m\u00e4\u00e4ramine v\u00f5i siis juba t\u00e4psema andmet\u00fc\u00fcbi kasutamine (nt double) v\u00f5i arvude t\u00e4isarvudena hoiustamine ning vajadusel teisendamine.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Polsterdamine_ja_joondamine\"><\/span>Polsterdamine ja joondamine<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Sageli tekib olukordi, kus numbri kuvamine teksti sees ei anna soovitud tulemust ning hea oleks neid kuvada tabeli kujul v\u00f5i siis v\u00e4hemasti joondatuna.<\/p>\n<pre class=\"lang:c decode:true\">#include &lt;stdio.h&gt;\r\n\r\nint main(void)\r\n{\r\n    char *names[] = {\"Ott\", \"Dolores\", \"Madis\"};\r\n    int employeeNum[] = {7, 19, 2123};\r\n    int ages[] = {22, 19, 53};\r\n\r\n    for (int i = 0; i &lt; 3; i++)\r\n    {\r\n        printf(\"%s\\t%d\\t%d\\n\", names[i], ages[i], employeeNum[i]);\r\n    }\r\n    return 0;\r\n}\r\n<\/pre>\n<p>Kasutades \\t ehk tabulaatorit saame tekitada mingisuguse eralduse. Pilt pole k\u00fcll k\u00f5ige ilusam aga v\u00e4hemalt tulbad on n\u00e4htavad.<\/p>\n<p><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2018\/09\/tab1-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3948 size-full\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2018\/09\/tab1-1.png\" alt=\"\" width=\"263\" height=\"54\" \/><\/a><\/p>\n<pre class=\"lang:c decode:true\">#include &lt;stdio.h&gt;\r\n\r\nint main(void)\r\n{\r\n    char *names[] = {\"Ott\", \"Dolores\", \"Johanna-Maria\"};\r\n    int employeeNum[] = {7, 19, 2123};\r\n    int ages[] = {22, 19, 53};\r\n\r\n    for (int i = 0; i &lt; 3; i++)\r\n    {\r\n        printf(\"%s\\t%d\\t%d\\n\", names[i], ages[i], employeeNum[i]);\r\n    }\r\n    return 0;\r\n}\r\n<\/pre>\n<p><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2018\/09\/tab2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3949\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2018\/09\/tab2.png\" alt=\"\" width=\"354\" height=\"54\" srcset=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2018\/09\/tab2.png 354w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2018\/09\/tab2-300x46.png 300w\" sizes=\"auto, (max-width: 354px) 100vw, 354px\" \/><\/a><\/p>\n<p>K\u00fcll aga pole taoline lahendus sageli sobilik. Probleemid tekivad koheselt kui \u00fche tulba v\u00e4\u00e4rtuse pikkus erineb teistest sedasi, et ei mahu enam \u00fche tabulaatori vahe sisse (loetakse vasakult 4-kaupa). Valisime siia \u00fche pikema nime ning n\u00e4eme, et joondus enam paika ei pea.<\/p>\n<pre class=\"lang:c decode:true\">#include &lt;stdio.h&gt;\r\n\r\nint main(void)\r\n{\r\n    char *names[] = {\"Ott\", \"Dolores\", \"Johanna-Maria\"};\r\n    int employeeNum[] = {7, 19, 2123};\r\n    int ages[] = {22, 19, 53};\r\n    float wages[] = {13f, 8.95f, 10.1f};\r\n\r\n    for (int i = 0; i &lt; 3; i++)\r\n    {\r\n        printf(\"%-13s  %3d  %06d  %5.2f\\n\", names[i], ages[i], employeeNum[i], wages[i]);\r\n    }\r\n    return 0;\r\n}\r\n<\/pre>\n<p>Vaatame siin \u00fchte v\u00f5imalikest lahendustest kus on mitmeid vorminduselemente lisatud. Samuti lisasime tulba palkade jaoks.<\/p>\n<ul>\n<li>Esiteks siis fikseerime \u00e4ra mitu t\u00e4hem\u00e4rgi iga v\u00e4lja jaoks j\u00e4\u00e4b &#8211; nt %13s, %3d, %6d. See \u00fctleb, et antud v\u00e4lja jaoks peab alati olema niimitu t\u00e4hem\u00e4rki ruumi. Kui sisestatav v\u00e4\u00e4rtus on l\u00fchem, siis vasakule j\u00e4\u00e4b t\u00fchi ruum.<\/li>\n<li>Teiseks kasutame teksti vormindamiseks miinusm\u00e4rki formaadis (%-13s). Miinusm\u00e4rk \u00fctleb, et antud teksti tuleks joondada vasakule, mitte paremale. Tavaliselt soovime me, et tekst oleks joondatud vasakule ning numbrid paremale.<\/li>\n<li>Kolmandaks n\u00e4eme formaati %06d, mis t\u00e4histab, et arvule j\u00e4etakse 6 t\u00e4hem\u00e4rki ruumi aga kui arvu on l\u00fchem sellest, siis t\u00fchjad kohad t\u00e4idetakse nullidega.<\/li>\n<li>Neljandaks vaatame murdarvu formaati (%5.2f. Sunnime murdarvu alati n\u00e4itama kahte komakohta, isegi kui need olid nullid. Selleks on number punkti j\u00e4rel. Teiseks on punkti ees samuti number. See \u00fctleb mitu t\u00e4hem\u00e4rki kogu numbri kuvamiseks kuulub koos eraldajaga.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2018\/09\/tab3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3952\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2018\/09\/tab3.png\" alt=\"\" width=\"409\" height=\"52\" srcset=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2018\/09\/tab3.png 409w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2018\/09\/tab3-300x38.png 300w\" sizes=\"auto, (max-width: 409px) 100vw, 409px\" \/><\/a><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Kasulikke_trikke\"><\/span>Kasulikke trikke<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Pealkirjade lisamiseks tabelitesse tasub kasutada samuti joondamisel vaadeldud trikke paigutuseks ja t\u00e4hem\u00e4rkide arvuks. C programmis pole oluline kas komaga on j\u00e4rgi pandud m\u00f5ni muutuja v\u00f5i konstant. Paneme oma p\u00e4iste nimetused komadega j\u00e4rgi ning m\u00e4\u00e4rame neile kohad formaadis.<\/p>\n<pre class=\"lang:c decode:true\">#include &lt;stdio.h&gt;\r\n\r\nint main(void)\r\n{\r\n    char *names[] = {\"Ott\", \"Dolores\", \"Johanna-Maria\"};\r\n    int employeeNum[] = {7, 19, 2123};\r\n    int ages[] = {22, 19, 53};\r\n    float wages[] = {13f, 8.95f, 10.1f};\r\n\r\n    printf(\"%-13s  %3s  %6s  %5s\\n\", \"name\", \"age\", \"id #\", \"wage\");\r\n    for (int i = 0; i &lt; 3; i++)\r\n    {\r\n        printf(\"%-13s  %3d  %06d  %5.2f\\n\", names[i], ages[i], employeeNum[i], wages[i]);\r\n    }\r\n    return 0;\r\n}\r\n<\/pre>\n<p><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2018\/09\/tab4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3954\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2018\/09\/tab4.png\" alt=\"\" width=\"414\" height=\"68\" srcset=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2018\/09\/tab4.png 414w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2018\/09\/tab4-300x49.png 300w\" sizes=\"auto, (max-width: 414px) 100vw, 414px\" \/><\/a><\/p>\n<p>Lahendus on juba \u00fcsnagi muljetavaldav. K\u00fcll aga on probleemideks siiski v\u00e4lja pikkuse muutumine. Praegu on vaja muudatus teha korraga kahes kohas, et see kehtiks \u00fcle tabeli &#8211; nii p\u00e4ises kui infov\u00e4ljades. Praktikas saaks teha seda ka veidike paremini.<\/p>\n<pre class=\"lang:c decode:true \">#include &lt;stdio.h&gt;\r\n\r\n#define F_LEN_NAME 13\r\n#define F_LEN_AGE 3\r\n#define F_LEN_ID 6\r\n#define F_LEN_WAGE 5\r\n\r\nint main(void)\r\n{\r\n    char *names[] = {\"Ott\", \"Dolores\", \"Johanna-Maria\"};\r\n    int employeeNum[] = {7, 19, 2123};\r\n    int ages[] = {22, 19, 53};\r\n    float wages[] = {13f, 8.95f, 10.1f};\r\n\r\n    printf(\"%-*s  %*s  %*s  %*s\\n\", F_LEN_NAME, \"name\",\r\n                                    F_LEN_AGE, \"age\",\r\n                                    F_LEN_ID, \"id #\",\r\n                                    F_LEN_WAGE, \"wage\");\r\n    for (int i = 0; i &lt; 3; i++)\r\n    {\r\n        printf(\"%-*s  %*d  %0*d  %*.2f\\n\", F_LEN_NAME, names[i],\r\n                                           F_LEN_AGE, ages[i],\r\n                                           F_LEN_ID, employeeNum[i],\r\n                                           F_LEN_WAGE, wages[i]);\r\n    }\r\n    return 0;\r\n}\r\n<\/pre>\n<p>V\u00e4lja pikkust on v\u00f5imalik C puhul anda eraldi konstandina v\u00f5i muutujaga. Selleks tuleb fikseeritud numbri asemel panna formaadi keskele t\u00e4rni (*). Sellisel juhul otsib kompilaator seda pikkust p\u00e4rast formaadi lugemist, eraldatuna komaga, enne v\u00e4lja sisu. Antud juhul m\u00e4\u00e4rasime programmis mitmed konstandid, mis \u00fctlevad kui pikk \u00fcks v\u00f5i teine v\u00e4li peab olema. N\u00fc\u00fcd saame neid muuta vaid \u00fchest kohast ja muudatus kehtib k\u00f5ikjal, kus me seda kasutame.<\/p>\n<p>J\u00e4rgmine samm sellest v\u00f5iks olla kuidas teha kas veerud d\u00fcnaamiliselt laienevaks v\u00f5i liigpikkade nimede puhul neid l\u00fchendada. Esimesel juhul on vihjeks k\u00f5igist tulpa kuvatavate v\u00e4\u00e4rtuste eelnev kontrollimine pikima leidmiseks ning teisel juhul v\u00f5ib abiks olla t\u00e4hem\u00e4rkide \u00fckshaaval tr\u00fckkimine kuniks ruumi on.<\/p>\n<p>Samuti juhin t\u00e4helepanu, et koodimisstiili huvides l\u00f5ime need eraldi ridadele lahku.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>J\u00e4rgnevalt on toodud v\u00e4lja mitmeid n\u00e4iteid erinevatest printf funktsiooni kasutusest. K\u00f5iki koodin\u00e4iteid soovitan kopeerida ning proovida enda arvutis, kasutades selleks kopeerimise t\u00f6\u00f6riista tekstikasti \u00fclaosas. Mitmete koodin\u00e4idete puhul on toodud ka esile tegevusi, mida ei tasuks teha koos soovituste ja alternatiivsete lahendustega. N\u00e4ite juurde kuulub reeglina selgitav kommentaar. Lihtteksti kuvamine #include &lt;stdio.h&gt; int main(void) { printf(&#8220;Hello!&#8221;); &hellip; <a href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/printf-kasutamine\/\" class=\"more-link\">Loe edasi <span class=\"screen-reader-text\">printf kasutamine<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":5274,"menu_order":2,"comment_status":"closed","ping_status":"closed","template":"page-templates\/code-width-wide.php","meta":{"footnotes":""},"class_list":["post-3938","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/3938","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/comments?post=3938"}],"version-history":[{"count":2,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/3938\/revisions"}],"predecessor-version":[{"id":10255,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/3938\/revisions\/10255"}],"up":[{"embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/5274"}],"wp:attachment":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/media?parent=3938"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}