Tässä kaikista ensimmäinen koodinpätkä, millä lienee kaikki aloittaneet.
Ei vain toimi...
Onko kyse kääntäjäkohtaisesta eroista.
Kääntäjänä mikkisoftan visuall c++ 6.0
Errori:
Compiling...
hello1.cpp
c:\program files\microsoft visual studio\myprojects\hello1\hello1.cpp(8) : fatal error C1010: unexpected end of file while looking for precompiled header directive
Error executing cl.exe.
hello1.exe - 1 error(s), 0 warning(s)
#include <iostream.h> void main() { cout << "hello world!\n"; }
Kyse voi myös olla siitä, että kääntäjä ei syö noin vanhentunutta koodia. Kummallinen virheilmoitus ei sano ainakaan minulle mitään, kokeilepa modernimpaa muotoa:
#include <iostream> int main() { std::cout << "hello world!\n"; return 0; }
Nykyään se on tosiaan iostream
eikä iostream.h
, mikä tarkoittaa myös, että se on std::cout
eikä cout
. Ja void main
-muoto on aikojen alusta asti ollut väärä - sen täytyy kuulua int main
, mikä tarkoittaa että pitää myös palauttaa jotain: return 0
.
Eli 1995 painettulla kirjalla saa heittää vesilintua...
Tuolla antaa erroria
hello1.cpp
c:\program files\microsoft visual studio\myprojects\hello1\hello1.cpp(7) : fatal error C1010: unexpected end of file while looking for precompiled header directive
Error executing cl.exe.
hello1.exe - 1 error(s), 0 warning(s)
Kokeile näin
#include <iostream> using namespace std; int main() { cout << "hello world!\n"; return 0; }
edit: Jaahas. hups. Deewiant ehti sittenkin huomata mokani :)
rndprogy kirjoitti:
Tuohon pitää vielä lisätä ennen std::coutia
using namespace std;
Ööh, eikä pidä. using namespace std
tarkoittaa että std::
-määritelmää ei tarvitse käyttää, sillä kaikki std
-nimiavaruudesta vedetään globaaliksi. std::
taas tarkoittaa, että nimenomaan sitä seuraava asia (tässä tapauksessa cout
-olio) on std
-nimiavaruudessa.
Ja nuo ongelmasi johtuvat tosiaan kääntäjästä, jos tuokaan ei käänny. Siinähän Googlailet, ellei joku VC++:aa tunteva satu paikalle.
No onneksi joku VC++:aa tunteva sattuu paikalle :)
Precompiled header -ongelma on "Microsoftin erikoinen." Mene projektin asetuksiin ja etsi kohta "Precompiled Headers", poista käytöstä.
VC++ 7.1:ssä: Project => Properties => C/C++ => Precompiled Headers => Create/Use precompiled header, arvoksi "Not Using Precompiled Headers"
Eli suositteletteko aloittelemaan koodausta jollakin muulla kääntäjällä.
Mulla olisi kyllä tuossa toisella kiintolevyllä linux ja c++ valmiina.
Taitaa olla mikkisoftalla oma c++ kielikin ;)
Lataappa vaikka Devc++. Tulee hyvä IDE ja kääntäjä mukana.
Dev-c++ on ihan hyvä perus-IDE - selkeä ja helppokäyttöinen. Olen viime aikoina kokeillut myös Code::Blocks'ia, joka vaikuttaa todella mukavalta. Dev-c++:nkin käyttämän Mingw-kääntäjän lisäksi siitä löytyy tuki mm. Watcomin, Borlandin ja Micro$oftin kääntäjille.
Dev-c++ kääntäjän pääsin alkuun...
sain tehtyä hello... ohjelman
#include <iostream> using namespace std; int main() { cout << "hello world!\n"; return 0; }
Ongelmaksi jäi vain se, että kun ohjelman ajaa, se pysyy näytöllä noin 0,01sekuntia ja sulkeutuu itsestään.
http://pp.kpnet.fi/blaze/codefaq/#justflashes
Ja ennen kuin kysyt vielä ääkkösongelmastakin, käytä hakua :)
niin ja tuon linkin ohjeen (jonka metabolix antoi) lisäksi yksi kikka on linkittää mukaan stdlib:
#include <stdlib.h>
ja sitten ennen mainin loppua lisätä pause-systeemikutsu:
system("PAUSE");
Defaulttina studio taitaa käyttää "precompiled headers"-optiota, mutta se ei luo niitä ensimmäisen käännöksen aikana ilman manuaalista generointia. "Hello World"-ohjelmassa niillä ei toki ole käyttöäkään.
Lainatakseni Blazen viisautta:
Blaze kirjoitti:
flip92 kirjoitti:
Eikös system("CLS"); tyhjennä ruudun kokonaan?
Eikun se tulostaa "bash: CLS: command not found"
flip92 kirjoitti:
Mitä tekee system("PAUSE");?
Tulostaa "bash: PAUSE: command not found"
flip92 kirjoitti:
Onko sellaista, kuin system("PAUSE > NUL");? Mitä se tekee?
Tallentaa tekstin "bash: PAUSE: command not found" tiedostoon NUL.
system():ä ei kannata käyttää. Yleensä tuollaisille löytyy ihan yleisesti toimivat vastineet.
Aihe on jo aika vanha, joten et voi enää vastata siihen.