Kirjautuminen

Haku

Tehtävät

Oppaat: C-ohjelmointi: Osa 1 - Ensimmäinen ohjelma

  1. Osa 1 - Ensimmäinen ohjelma
  2. Osa 2 - Muuttujat, taulukot ja tietueet
  3. Osa 3 - Ehdot, silmukat ja funktiot
  4. Osa 4 - Standardikirjasto

Kirjoittaja: Antti Laaksonen (2004).

Jokaiselle ohjelmoijalle on hyötyä C-kielen osaamisesta. C on tehokas ja monikäyttöinen ohjelmointikieli, ja hyvin tehty C-kielinen ohjelma toimii vähäisin muutoksin lukuisilla järjestelmillä. Tämän opassarjan tarkoituksena on toimia selkeänä suomenkielisenä johdatuksena C-ohjelmointiin ja samalla osoittaa, että C-kielen oppiminen ei ole mikään vaikea juttu. Aikaisemmasta ohjelmointikokemuksesta on paljon hyötyä, mutta aloittelijallekaan oppaiden seuraaminen ei pitäisi olla mahdotonta. Esimerkit toimivat kaikilla standardinmukaisilla C-kääntäjillä.

C-kääntäjän asentaminen

Tässä on C-kääntäjän asennusohje Windowsille. Jos sinulla on jo C-kääntäjä tai käytät jotain toista käyttöjärjestelmää, voit hypätä tämän osuuden yli. Asentamamme ilmainen C(++)-kääntäjä on nimeltään MinGW. Samalla asennamme Dev-C++-ohjelmointiympäristön, johon kuuluu muun muassa näppärä tekstieditori. Myös Windows-ohjelmointi on näillä ohjelmilla mahdollista, mutta sitä asiaa ei tässä opassarjassa käsitellä.

Dev-C++:n kopiointisivun osoite oli oppaan kirjoitushetkellä http://www.bloodshed.net/dev/devcpp.html. Noin 12 megatavun kokoisessa paketissa on mukana siis sekä Dev-C++-ympäristö että MinGW-kääntäjä. Dev-C++:n asentaminen ja käyttö on mutkatonta. C-ohjelman kääntäminen tapahtuu Execute-valikon kohdasta Compile ja ajaminen tapahtuu saman valikon kohdasta Run.

Kannattaa kuitenkin myös tuntea komentorivin käyttö Dev-C++:n valikoiden lisäksi. Komentorivillä ohjelma käännetään näin:

c:\devcpp\bin\gcc ohjelma.c -o ohjelma.exe

Sitten ohjelman voi käynnistää näin:

ohjelma

Tässä oletetaan, että Dev-C++ on asennettu hakemistoon c:\devcpp\ ja ohjelma.c on siinä hakemistossa, jossa käännöskomento kirjoitetaan. Kun tekstipohjaisen ohjelman käynnistää suoraan komentoriviltä, sen tulostama teksti jää näkyviin, kun ohjelman suoritus päättyy. Ohjelmalle pystyy myös antamaan komentoriviparametreja, ja sen tulostuksen voi ohjata tiedostoon.

Ensimmäinen C-ohjelma

Ensimmäisen C-ohjelman nimi on testi.c, ja se tulostaa näytölle tekstin "C-ohjelmointi on kivaa!"

#include <stdio.h>

int main(void) {
    /* tulostetaan tekstiä näytölle */
    printf("C-ohjelmointi on kivaa!\n");

    return 0;
}

Ensimmäisellä rivillä oleva #include <stdio.h> liittää ohjelmaan mukaan stdio.h-tiedoston. Tässä tiedostossa on tekstin tulostukseen käytettävän printf-funktion määrittely. C-kielessä ei ole valmista keinoa tekstin tulostamiseksi näytölle, koska kieli pyrkii olemaan mahdollisimman yleiskäyttöinen. Tosin jokaisen C-kääntäjän mukana on stdio.h ja joukko muita tiedostoja, joissa on usein tarvittavien funktioiden määrittelyitä. Nämä funktiot muodostavat standardikirjaston.

Varsinainen ohjelma alkaa rivillä int main(void) { ja päättyy riviin }. Näistä merkinnöistä kääntäjä tunnistaa ohjelman alun ja lopun, ja ne toistuvat samanlaisina joka ohjelmassa. C-ohjelma on itse asiassa main-niminen funktio, jolla on myös palautusarvo. Ohjelman viimeisellä rivillä return 0; palauttaa käyttöjärjestelmälle arvon 0, joka tarkoittaa, että ohjelman suorituksessa ei tapahtunut virhettä.

Ohjelman sisällä ensimmäisellä rivillä on kommentti eli ohjelman kirjoittajan oma muistutus, jonka kääntäjä jättää huomioimatta. Kommenttien kirjoittaminen on hyvä tapa, sillä muuten koodia voi olla vaikea lukea myöhemmin. Tietenkään näin selvässä tapauksessa kommentti ei oikeasti olisi tarpeellinen. Kommentti alkaa merkinnällä /* ja päättyy merkintään */. Kommentti voi olla useamman rivin pituinen.

Rivillä printf("C-ohjelmointi on kivaa!\n"); tulostetaan tekstiä printf-funktion avulla. Tämän funktion vuoksi siis ohjelmaan liitettiin alussa mukaan stdio.h-tiedosto. Tekstin jäljessä oleva \n tarkoittaa rivinvaihtoa. printf-funktio on paljon monipuolisempi kuin tämän ohjelman perusteella voisi luulla, ja lisää tietoa funktion käytöstä on opassarjan seuraavissa osissa.

Huomionarvoisia asioita

Jokainen C-kielisen ohjelman lause päättyy puolipisteeseen (;). Kuitenkaan puolipistettä ei ole esikääntäjälle tarkoitettujen komentojen perässä, jotka alkavat risuaitamerkillä (#). Myöskään puolipistettä ei tavallisesti tule aaltosulkujen ({ ja }) jälkeen. Aaltosulut yhdistävät useamman ohjelmalauseen esimerkiksi funktion sisällä. Ohjelman kirjoitusasu on vapaa välien ja rivinvaihtojen osalta. Koodin lukeminen on tosin hankalaa, jos ohjelma näyttää esimerkiksi seuraavalta.

         #include <stdio.h>
         int
        main             (
       void
      )
   {                  printf
 (
"C-ohjelmointi on kivaa!\n"
 )
  ;
   return
  0
 ;
}

Kirjavinkki

Kirjaston poistomyynnistä ostamani Kari Silpiön kirjoittama C-kieli (ISBN 951-37-1041-6) osoittautui todelliseksi löydöksi. Kirja on hyvin kirjoitettu, ja siihen on ujutettu tiiviissä muodossa suuri määrä hyödyllistä tietoa. Erityisen hyvin kirja soveltuu käsikirjaksi sekä henkilölle, joka on aikaisemmin ohjelmoinut jollain toisella ohjelmointikielellä. Suosittelen!

Tehtäviä

  1. Ota selvää C-kielen historiasta Internetin tai kirjaston avulla.

  2. Mitä hyviä ja mitä huonoja puolia on mielestäsi siinä, että C on yleiskäyttöinen ja järjestelmäriippumaton ohjelmointikieli?

  3. Kirjoita ohjelma, joka tulostaa näytölle seuraavan kuvion:

      CCCC
     C    C
    C
    C
    C
     C    C
      CCCC
  4. (Windowsissa:) Ohjelman palautusarvo selviää kirjoittamalla ohjelman suorituksen jälkeen komentoriville echo %ERRORLEVEL%. Tutki, muuttuuko %ERRORLEVEL% todella return-lauseessa olevan luvun mukaan. Tutki myös muiden ohjelmien palautusarvoja. Tuleeko niiden arvoksi joku muu kuin nolla, jos ohjelmassa tapahtuu virhe?

Antti Laaksonen, 16.2.2004


Kommentit

sqwiik [21.02.2004 16:07:51]

#

No niin... Oli tämänkin opassarjan jo aika tulla :)

Gwaur [21.02.2004 18:08:41]

#

huaah, pyhäinhäväistys! :D
Kaikkein ensimmäinen ohjelma millä tahansa kielellä ei saa olla yhtään mikään muu kuin legendaarinen Hello World ;)

remontti-reiska [21.02.2004 20:19:08]

#

Tarvitaankos enää C++ opasta kun on C opas jo. Voisin kirjoittaa ainakin C++ alkeet oppaan :).

Meitsi [22.02.2004 15:39:59]

#

Äh! Mä olin just kirjoittamassa c++ opasta, mutta Antti kerkesi ensin. Antti muuten, tota koodia piristäis jos siihen laittais värityksen ja boldit. Siis esim. int, char ja return ovat boldattuja ja numerot on kirjoitettu sinisellä, " merkkien sisältö punasella. Silleen niinku esim devc++ värittää tekstiä

Jaska [22.02.2004 19:18:45]

#

Kyllä puolipisteen pitää joskus laittaa aaltosulkeen jälkeen, ainakin tietueiden lopussa.

Quiz [22.02.2004 21:28:32]

#

Hyvä opas... Taisin itsekin taas innostua C-ohjelmoinnista parin vuoden tauon jälkeen!

lainaus:

Antti muuten, tota koodia piristäis jos siihen laittais värityksen ja boldit. Siis esim. int, char ja return ovat boldattuja ja numerot on kirjoitettu sinisellä, " merkkien sisältö punasella. Silleen niinku esim devc++ värittää tekstiä

Tai vaikka OP:n keskustelun koodic-tagien värityksen mukaan...

Latska [23.02.2004 15:52:33]

#

Loistavaa! Ajattelin ensin treenata delphiä, mutta tää opas... On parasta kattoa opas alta pois ja vähän harjotellakki tätä, ja sitte vasta siirtyä delphiin!

Meitsi [25.02.2004 10:34:26]

#

Antti, kuinka kauan sä olet oikeen koodannu? Sultahan näyttäs sujuvan jokanen kieli mitä nyt äkkituntumalta tulee mieleen.

Antti Laaksonen [27.02.2004 20:15:33]

#

Gwaur: Eihän tuommoinen teksti suomenkieliseen oppaaseen sovi! :)

Meitsi: Väritys tulee ehkä sitten, kun saan skriptin kunnolla toimimaan.

Jaska: Olet oikeassa, paransin tekstiä.

Meitsi: Uuden ohjelmointikielen oppiminen ei ole temppu eikä mikään, kun yhden ensin osaa.

hunajavohveli [06.03.2004 11:34:15]

#

Hienoa, että saatiin vielä C-opaskin. Tuo on muuten totta, että, kun yhden osaa, oppii toisen helposti, kun on ensimmäisen yhteydessä oppinut asiat, joita kaikki ohjelmointikielet käyttävät, kuten muuttujat, funktioit jne.

hunajavohveli [21.03.2004 19:38:04]

#

Mitähän voisi tehdä sille ongelmalle, että XP sulkee ohjelman, heti kun se loppuu, eikä mitään tekstiä ehdi näkyä? Ellei perään pistä vaikka "cin >>", jolloin pitää painaa jotain näppäintä ennen kuin ohjelma loppuu.

Gwaur [27.03.2004 19:36:46]

#

Antti: mutta eihän "Hello, world!" ole suomeksi "C-ohjelmointi on kivaa!", eihän? :D
Kuitenkin monissa c/c++-kirjoissa jotka on suomennettu englannista opastetaan kuitenkin kirjoittamaan esimmäiseksi ohjelmaksi "Hello, world".

Meitsi kirjoitti:

Äh! Mä olin just kirjoittamassa c++ opasta, mutta Antti kerkesi ensin.

Antti kirjoitti C-oppaan, ei C++-opasta :) C on C++:n yksi osa-alue. C++ > C ;)

tekojalka [23.05.2004 15:26:42]

#

mistä saa C:n

Matti Kaijomaa [31.07.2004 22:08:27]

#

Lueppas opas... Siinä kerrotaan minun mielestäni aika selvästi että mistä saa C/C++ ohjelmointiympäristön.

Fisher [08.09.2004 08:17:19]

#

lasse [11.10.2004 17:52:03]

#

Microsoft Visual Studio .NET on hyvä ohjelma C/C++/C#-ohjelmoinissa....

Cezta [30.10.2004 17:17:11]

#

"Mitähän voisi tehdä sille ongelmalle, että XP sulkee ohjelman, heti kun se loppuu, eikä mitään tekstiä ehdi näkyä? Ellei perään pistä vaikka "cin >>", jolloin pitää painaa jotain näppäintä ennen kuin ohjelma loppuu."

Itse käytän tähän komentoa system("PAUSE"), joka toimii ainakin C++ kanssa.
PS. vähän myöhässä tämäkin kommentti, mutta nyt vasta tajusin katsella C oppaita :)

tejeez [11.11.2004 13:33:39]

#

Ja tääl sit esitellään mahdollisimman huonoja tapoja kommenteissa. :)

Snifferi [09.12.2004 19:59:17]

#

Asensin nyt tuon Dev-C++-ohjelmointiympäristön. Kertokaapas pällille tarkemmin miten tuo konsolissa kääntäminen ja ajaminen oikein tapahtuu :)

jeims [17.12.2004 16:44:52]

#

mä en älyy kyl mitää, kun mä tungen ton tekstin sinne ohjelmaan ja painan "run" ei tapahu mitää. (olen painanut sitä ennen "compile"!)

Antti90 [10.01.2005 16:31:12]

#

Hm mikähän olis ongelma kun olen tehnyt tuon"esimmäisen ohjelman"niin kun painan "run" niin ohjelma vain välähtää näytöllä??

Antti90 [10.01.2005 19:39:26]

#

Ei mitään enää kun luin ooppaan tarkemmin niin ymmärsin

hohoo [24.02.2005 16:50:06]

#

Exe:n suoritus:

Resurssienhallinnassa tiedosto - uusi - tekstitiedosto.
Muuta tiedoston nimeksi vaikka testi.bat (pitää olla bat- tai cmd-pääte).
Klikkaa bat-tiedostoa hiiren kakkosnappulalla eli yleensä oikealla "korvalla" ja valitse "muokkaa". Kirjoita tiedostoon

@ECHO OFF
EXETIEDOSTONNIMI
ECHO _________________________________________________________
ECHO Ohjelma palautti arvon %ERRORLEVEL%
PAUSE

nikkenakkerton [08.03.2005 17:04:35]

#

hieno opas, varsinkin aloittelevalle! ;)

Kaffir [24.03.2005 17:20:26]

#

En älyä tuota ensimmäistä printtausta. Kun käynnistän testi.exen niin aukeaa musta ikkuna ja suunnilleen puolen sekunnin päästä se sulkeutuu. En ehdi nähdä mitä tekstiä siihen tuli.

Kingi [14.04.2005 22:44:49]

#

Kaffir:
Avaa se komento kehotteella!
win nappi pohjaan + r :::> "cmd"

Komento kehotteen käyttö:
kannattaa laittaa exesi helppoon paikkaan esim. a:\testi.exe tai c:\ohjelmointi\testi.exe, eikä esim. c:\document and settings\<Nimi>\omat tiedostot\ohjelmointi\omat ohjelmat\testit\testi.exe, koska tuon koko hössykän joutuu kirjoittamaan ite käsin!

cd.. komennolla pakitat hakemistossa
cd <kansio/asema> avaa kansion/aseman
testi.exe avaa test.exen

käytännössä:
c:\document and settings\<Nimi>\omat tiedostot\cd..
c:\document and settings\<Nimi>\cd..
c:\document and settings\cd..
c:\a:
a:\testi.exe
testi.exe avautuu eikä sen tulostamat asiat häviä...

php mies [06.06.2005 11:54:45]

#

mihin kohtaan koodia ja mitä sen eteen pitää laittaa se "cin>>" laitetaan tai siis jos sen pystyy tekemään silleinkin että lisää koodin loppuun "cin>>" komennon tai mikä se nytten on

crafn [22.06.2005 16:01:17]

#

tein mitä tahansa niin ohjelma vaan vilahtaa ruudulla, mitä pitäis tehdä ?

aloitteleva [22.06.2005 21:32:45]

#

Tämä oli hyvä alku opettelin sen yöllä kun en saanut nukutuksi.
Nyt minulla on on kirja c++ trainer jonka on tehnyt Jesse Liberty se vaikuttaa hyvältä. Olen lukenut sitä nytten 43 sivua Siina olen oppinut jo aika paljon.
Mutta width, lenght ja sen semmoiset ei oo vielä jäänyt päähäni.
~aloittelija

arnold super [27.08.2005 17:51:35]

#

mulle tulee vaa ilmotus "source file not complited"

onko vika mussa vai mun kääntäjässä?

arnold super [27.08.2005 18:28:53]

#

joo. vika oli kääntäjässä. nyt toimii ku latasin uudestaa. :)

feenix [22.12.2005 11:02:53]

#

printf:n käyttö tuossa on aika yliampuvaa, puts toimii ihan hyvin. Helposti joku mokaa kun kirjoittaa tuonne prosenttimerkkejä tai muuta printf:n käsittelemää ja sitten ihmetellään mikä meni pieleen.

mOrienttes [13.02.2006 18:27:07]

#

Mihin väliin noi cin-jutut tulee? Ihmettelen vaan. Olen siis ihan alittelija. :D

Az [01.08.2006 02:07:24]

#

nyt on kasa vaikuttavan näköisiä ja eri värisiä sanoja ruudulla mutta eipä näy mitään painettaessa run. kun Dev-C:ssä aloittaa uuden projektin, tulee ruutuun jo valmiiksi koodia täynnä oleva ruutu. ajamalla sen koodin saa näkyviin tyhjän windows-ikkunan. pitääkö tämä koodinpätkä tunkea sen väliin vai poistanko sen merkkisotkun ja aloitan puhtaalta pöydältä. ? Nostan hattua niille, jotka ovat kielen oppineet... :D

watchuku [18.09.2006 21:36:30]

#

Ei toimi vaikka mikä olisi aina vain välähtää ruudulla, olen mennyt compiler optioniin sieltä compile delayhyn laitoin 10000, ja ei vieläkään toimi myös "exe:n suoritus" ei toiminut

Jon31 [21.09.2006 11:17:35]

#

Öö.. Yhtä juttua en ole älynyyt.. Mitä tuolla kielellä ohjelmoidaan? :)

Larwex [30.09.2006 01:30:52]

#

Jon31, sillä ohjelmoidaan ohjelmia..? vaikka hirsipuu :D

kannattaa oikeesti laittaa se ohjelma pysäyttään ittensä lopuks, et kerkii nähä mitä se tekee sen vilauksen sijaan.

Tää on hyvä tapa, lisää system("PAUSE");-komennon sinne perään, ni ohjelma pysäyttää ittensä:

#include <stdio.h>

int main(void) {
    /* tulostetaan tekstiä näytölle */
    printf("C-ohjelmointi on kivaa!\n");
    system("pause");
    return 0;
}

moptim [23.10.2006 18:55:36]

#

Larwex: kooditägit?

moptim [08.02.2007 16:21:32]

#

> Jon31

Yääh!

hunajavohveli [12.03.2007 15:40:40]

#

System("PAUSE"); ei ole hyvä tapa, koska se vain käynnistää pause-nimisen ohjelman. Jos käyttäjän koneella ei ole sellaista ohjelmaa, näytölle vain tulostuu virheilmoitus. Esim. getchar() on suositeltavampi.

Kray [23.03.2007 16:23:46]

#

Gwaur kirjoitti:

huaah, pyhäinhäväistys! :D
Kaikkein ensimmäinen ohjelma millä tahansa kielellä ei saa olla yhtään mikään muu kuin legendaarinen Hello World ;)

Olen 110%:sesti samaa mieltä!

Dude [05.09.2007 20:17:14]

#

Tuo vaan välähti mutta ku lisäs tuon hunajavohvelin jutun niin toimi. Latasin turbo c++ssan.

dishop [01.12.2007 14:52:55]

#

voiko joku kirjoittaa oppaan miten tuota dev-c++:saa käytetään ja mistä napista se suorittaa sen ohjlman minkä on luonut.

dishop [01.12.2007 15:02:23]

#

kun yritän suorittaa ohjelmaa tulee vain ilmoitus "projeck is not compiled" mistä se johtuu.. se tulee vaikka kopioisin tekstin suoraan tästä opaasta. edes tuo ohjelmointi on kivaa ei toimi.

hakrihe [19.03.2008 08:02:54]

#

"kun yritän suorittaa ohjelmaa tulee vain ilmoitus "projeck is not compiled" mistä se johtuu..."

Compile ja ajaminen tapahtuu saman valikon kohdasta Run. Tai paina vain F9.

Tuo että ohjelmaikkuna vilahtaa...Eikös perusjuttu sen estämiseksi ole laittaa vaikka conio.h sekä getche();

Roni L [15.05.2008 20:09:49]

#

Mitäs pitäis tehdä kun tulee tällainen virheilmoitus:

16-bittinen MS-DOS-alijärjestelmä
C:\DOVUME~1\RONILI~1\TYPY~1\testi.exe
CS:072d IP:0103 OP: 636c756465 Sulje sovellus valitsemalla Sulje.

Vaihtoehtoja on Sulje tai Ohita.
Jos painaa ohita ohjelma katoaa ruudulta.
Missä meni väärin?

Pollapoju [20.05.2008 20:57:24]

#

ei asennu vistalle ei siis mitenkään tietääkö joku miten sais ton Dev-C++

Palvy [15.06.2008 15:15:46]

#

Asensin tuon Dev-C++ 4:sen Vistalle ja kokeilin kääntää tota "C-ohjelmointi on kivaa!" -ohjelmaa "Compile"-komennolla, jolloin ilmestyy "Compilation completed" -ikkuna ja erroreita 0 kpl. Alhaalla olevan "Linker" -tabin alle tulee kuitenkin ilmoitus: "gcc: c:\...\testi.o: No such file or directory
gcc: file path prefix `C:\DEV-C_~1\Bin\' never used". Sama tapahtuu myös kun painaa "Run". Sama tuli myös kun asensin ensin tuon uuden beta-version Dev-C++:sta.

vehkis91 [15.06.2008 23:45:05]

#

kyll mulla ainakin vistassa on kääntynyt c/c++ ohjelmat...
Itse pistän ohjelman loppuun cin.get(); en kyllä oo varma onko tämä c++.

Edit: ja käytössä on Dev-cpp 5 beta.

Hacker [18.09.2008 16:38:46]

#

Muuten hyvä, mutta ilmoittaa virheestä dev-cpp:llä #include <stdio.h> kohdassa.
Huomasin, että ohjelma alkoi toimia kun <stdio.h>:n paikalle sijoitti <iostream>, vaikka minulla ei kylläkään ole varmaa käsitystä mitä kyseinen iostream tekee. Jos joku haluaa valaista asiaa niin olkoon hyvä.
Edit: Kokeilin uudestaan ja alkoi toimimaan tuolla <stdio.h>:llakin. :)

Tuli vain sellainen ongelma vastaan, että ohjelmaikkuna näkyy vain olemattoman ajan näytöllä. :(

Huom! Huomasin oppaita ettiessäni sivun jolta nämä on kopioitu:
http://ta.ramk.fi/~aku.kesti/ohj1/

juhab [16.01.2009 18:11:26]

#

jee, meni ainaskin puol tuntii dev-cpp asennuksen aloituksesta siihen että nyt on ruudulla musta ikkuna missä lukee c-on kivaa! jihuu, toi ikkuna kertoo totuuden!

juhab [16.01.2009 18:19:54]

#

juhlin liian aikaisin, en muista mitä tein ja mitä en, uudestaan, plaah.

juhab [16.01.2009 18:46:31]

#

pääsin perille miten teen ohjelman, jes! ja eiku next-->

JAMSUO93 [23.01.2009 18:35:28]

#

kannattaa laittaa tohon printf:n jälkeen getchar();
jotta ikkuna heti sulkeudu kun ohjelma on ajettu

ankzilla [25.01.2009 19:36:15]

#

Sain viimeinki ton ohjelman toimimaan. ;D

Nyt vielä se itse kieli...

cool-driver [05.05.2009 08:27:09]

#

Latasin tuon kääntäjän ja kirjoitin tuon C-ohjelmointi on kivaa!, mutta se heittää kaksi virhesanomaa:

1. [Linker error] undefined reference to `__cpu_features_init'

2. ld returned 1 exit status

HELP!

ponzo [15.05.2009 09:26:09]

#

Tämä oli hyvä opas.
Kiitokset kirjoittajalle :)

Jon [03.06.2009 22:06:46]

#

Hacker kirjoitti:

...
Tuli vain sellainen ongelma vastaan, että ohjelmaikkuna näkyy vain olemattoman ajan näytöllä. :(
...

Sama ongelma. Miten ratkaistaan? O_o

jaketyyppi [08.06.2009 10:09:37]

#

Voisko joku kertoa miten saadaan printf tulostamaan:
______________
|o |
|__________ |
| |
|x____________|


kun tällänen ei toiminu:

{printf("\n

______________\n
|o |\n
|__________ |\n
| |\n
|x____________|\n")
}

jaketyyppi [08.06.2009 10:13:52]

#

Oho, "Muokkaa" nappi ei toimi, vaan vie muualle. Tarkotus oli tulostaa jotain ihan muuta, tuolta löytyy:
http://sooda.dy.fi/paste/?ar

Torgo [30.09.2009 09:53:18]

#

Jaketyyppi:
Virheitä on useita. Ensinnäkin printf kuuluu loppua puolipisteeseen. Toisekseen et voi tuolla tapaa jakaa stringiä useammalle riville. Voit korjata tuon:
a) Kirjoittamalla koko stringin yhdessä pötkössä (\n riittää kertomaan ohjelmalle missä kohtaa rivi vaihtuu)
b) Kirjoittamalla printf joka riville erikseen
c) Lisäämällä rivin loppuun \ ,joka kertoo esikääntäjälle että seuraava rivi on jatkoa kyseiselle riville.

Jos ei näidenkään toimenpiteiden jälkeen lähde toimimaan, niin saattaa olla että käyttämäsi kirjaston printf:n toteutus ei automaattisesti tyhjennä kirjoituspuskuria näytölle. Sen saa korjattua lisäämällä printf:n jälkeen puskurin tyhjennyksen:
fflush(stdout);

TVdata [03.06.2012 20:58:28]

#

Minä olin 3-vuotias kun tämä opas tuli. Olisin oppinut ohjelmoimaan tämän lukemisen innoittamana. Sen sijaan luin c++ oppaan viime vuonna, ja sitä ennen luin java kirjaa kunnes kyllästyin pitkäksi aikaa.

kayttaja-11960 [01.10.2015 20:58:59]

#

Kiitos tästä oppaasta, C on kiva koska aika samanlainen kuin PHP, toisin kuin esimerkiksi C++...

Kirjoita kommentti

Huomio! Kommentoi tässä ainoastaan tämän oppaan hyviä ja huonoja puolia. Älä kirjoita muita kysymyksiä tähän. Jos koodisi ei toimi tai tarvitset muuten vain apua ohjelmoinnissa, lähetä viesti keskusteluun.

Muista lukea kirjoitusohjeet.
Tietoa sivustosta