Mitt hello world fungerar inte

Här diskuteras programmering och utveckling
Användarvisningsbild
Millard
Inlägg: 42
Blev medlem: 26 jun 2007, 23:25
Ort: Örebro

Mitt hello world fungerar inte

Inlägg av Millard »

Hejsan!

Har precis installerat Ubunto och till min glädje  fungerade allt som det skulle efter minimalt med pillande.  Tänkte börja med lite programmering, och  har intresserat mig en del för C++. Dock är jag helt ny när det gäller programmering (bortsätt lite QBasic i högstadiet) och behöver därför lite hjälp. Jag började mitt äventyr med att tanka hem en gratisbok om C++ programmering,  och började sedan leta efter en smidig C++ editor.  Hittade en  som heter Anjuta och vips så var jag igång. Tyvärr blev det nått fel redan vid första experimentet.  Jag  gjorrde det traditionella "Hello world!" programmet. Jag knappade in följande kod:

Kod: Markera allt

#include <iostream>

int main () {
	// Skriv ut vårt meddelande
	cout << "Hello world!" <<  endl;
}
När jag nu gjort det ville jag kompilera koden och tryckte färför på F9. En massa felmeddelanden dök upp, och jag blev  i ärlighetens namn inte ett dugg klokare på det.
Följande fel kom upp:

Kompilerar fil: hej.cc...
g++      -c "hej.cc" -o "hej.o"
hej.cc: In function ‘int main()’:
hej.cc:5: error: ‘cout’ was not declared in this scope
hej.cc:5: error: ‘endl’ was not declared in this scope
Färdig... misslyckades
Totalt åtgången tid: 1 sekunder

Snälla jag vill verkligen lära mig det här. All hjälp uppskattas.

Tack på förhand!
Since light travels faster than sound, isn\'t that why some people appear bright until you hear them speak?
Användarvisningsbild
DrMegahertz
Inlägg: 296
Blev medlem: 06 maj 2006, 14:37
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Södra Dalarna

SV: Mitt hello world fungerar inte

Inlägg av DrMegahertz »

Alla funktioner och objekt som finns i standardbiblioteken är deklarerade inom namnrymden "std", så för att kompilatorn ska veta att du vill använda funktionerna ur just standardbiblioteken så måste du berätta det för den. :)

Detta gör du smidigast genom att skriva using namespace std; i den globala namnrymden, alltså utanför alla funktionsdefinitioner. Det kommer då att se ut såhär;

Kod: Markera allt

#include <iostream>

using namespace std;

int main() {
    cout << "Hello World!" << endl;
}
Du kan då använda bl.a. cout och endl från alla funktioner i programmet.

Men säg att du skriver en headerfil, och där bör du aldrig öppna upp namnrymder globalt, utan istället använda dem på det här sättet;

Kod: Markera allt

#include <iostream>

int main() {
    std::cout << "Hello World!" << std::endl;
}
Du specifierar alltså att du vill använda objektet cout och endl ur namnrymden std, precis när du använder dem.

Lite halvkrassligt förklarat, men det kanske skänker en gnutta ljus iallafall, här finns lite utförligare information!  ;D

Lycka till med kodandet nu! :)
BildAre you shpongled? Bild
Emil.s
Inlägg: 6633
Blev medlem: 12 dec 2006, 23:20
OS: Ubuntu
Ort: /Dalarna/Hedemora/
Kontakt:

SV: Mitt hello world fungerar inte

Inlägg av Emil.s »

Och eftersom du redan skapat en sträng, så behöver du egentligen inte använda "<< std::endl".
Föreslår att du gör så här i stället:
    std::cout << "Hello World!\n";
Och om du bara vill använda namnutrymmet STD i en funktion så deklarerar du det i funktionen:

Kod: Markera allt

#include <iostream>
int main() {
    using namespace std;
    cout << "Hello World!\n";
}
Lycka till! :)
Home sweet ~/ = http://sandnabba.se
Skriv svar

Återgå till "Programmering och webbdesign"