Elindítottam a Microsoft Visual 2010 c++ express -t, és miközben olvastam a tanuljunk meg programozni c++ nyelven -t, azt vettem észre hogy nem működik az a parancssor amiket beírtam?
A könyvben ez áll:
#include <iostrearn>
int main()
{
std::cout << "Hello World!\n';
return 0;
}
viszont ezzel csak egy tized mp. -re jelent meg, egy csomó hiba üzenetet kaptam stb... Aztán láttam egy másik hello word programot máshol ( nem akarok ott tanulni, csak mondom hogy láttam ) ahol ez volt:
#include <iostream>
int main() {
std::cout << "Hello World!" << std::endl;
std::cin.get();
return 0;
}
ezzel 0 hiba üzenetet kaptam, és egyből futott a program, és nem tűnt el a hello world. Mi lehet a baj?
Break point-ot kell le raknod ha meg akarod állítani kilépés előtt a program futását, hogy lásd az eredményt.
A második kódsorban a cin.get() parancs miatt nem lép ki a program azonnal, hanem megvárja, hogy lenyomj egy billentyűt.
Viszont ha ennyire nem érted még mi történik, akkor javaslom olvasgass valami bevezető irodalmat. Például olyanokat, hogy mi az a programozás, mi az a soros utasítás végrehajtás, meg cplusplus.com-on olvass el minden parancshoz tartozó leírást, amit használsz!
A hibaüzeneteket valószínűleg az <iosteaRN> miatt kaptad, az <iostreaM> a hivatalos neve.
Mikor fordítasz, a fordító egy csomó ellenőrzést és optimalizálást végig tol a forráson, ebből a legelső az előfordítás, ami például feldolgozza a # utáni dolgokat. Ez, mivel nem talál iostrearn nevű állományt sehol, figyelmeztet, és nagy valószínséggel le sem fordul.
Mikor futtatod a programot, és a main függvény fut, az soronként végrehajtódik. A return 0 utasítás után pedig vége van a programnak. Minden erőforrása felszabadul. Ahhoz, hogy ez ne történjen meg, várakoztathatod, például a cin.get()-tel. Ilyenkor egy tetszőleges leütésre vár.
Semmi baja nincs a másodiknak, ez teljesen természetes. Az első viszont már eleve hibás egyrészt az include miatt, másrészt a kiiratásnál "" helyett "' van. Valószínűleg ezért is sír.
Azzal nyilván tisztában vagy, hogy az std::endl; ( std névtérből származó művelet ), ugyan azt jelenti, mint a \n.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!