Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  28 2950
Denne guiden vil beskrive noe av det mest grunnleggende i programmeringsspråket C++. Og vise tekst på skjerm og hente tekst/tall fra brukeren og lagre dem i variabler for og bruke dem senere.
For og bruke disse kodene under Linux må du fjerne #include <conio.h> og getch();.

[SIZE=3]Kompilering:[/SIZE]
For og kompilerer disse kodene, altså gjøre dem om til fungerende .exe filer må du laste ned en kompilerer. En editor og kompilerer i et jeg anbefaler er Dev-C++ .
Kompileren leser linje for linje nedover, får du noen feil med koden vil kompilerern referere til linjen de skjer i.

[SIZE=3]Skrive ut tekst:[/SIZE]

Kode

#include <iostream>
#include <conio.h>

using namespace std;	
int main()
{
	cout << "Hei nFF";
        getch();
	return 0;
}
[#include <iostream>]
Her inkluderer vi header filen som huser den predefinerte funksjonen cout og mange flere.

[#include <conio.h>]
Her inkluderer vi header filen som huser den predefinerte funksjonen getch og mange flere.

[using namespace std;]
Denne delen forteller at man skal benytte namespacen som heter std. Et namespace brukes til å samle og klassifisere ting i. Alle de vanligste funksjonene i C++ standard bibliotek er i namespace'n kalt std.
Uten using namespace std, måtte man ha brukt namespace som prefiks på funksjonene som f.esk cout. Eksempel: Uten namespace måtte man ha skrevet cout slik: std::cout. Forstår du fortsatt ikke hvorfor vi bruker namespace std anbefaler jeg og sjekke ut siden her.


[int main()]
Her starter det aktuelle programmet, alle programmer har en main() funksjon.
Vanligvis tilhører funksjoner andre funskjoner eller er startet av en annen, men main() er spesiell. Når programmet starter blir main() startet automatisk.

[cout << "Hei verden!";]
Objektet cout er brukt for å vise tekst på skjermen, cout brukes slik: skriv ordet cout, etterfulgt av <<. Det som kommer etter << blir skrevet til skjermen. All tekst må være innenfor hermetegn ("")

[getch();]
Denne kommandoen venter på tastetrykk fra brukeren før den går videre. Vi bruker denne fordi programmet ikke bare skal kjøre igjennom og forsvinner på under 1 sekund.

[return 0;]
main() venter på en beskjed om at den er slutt, denne beskjeden gir return 0;

[{ }]
Alle funskjoner starter med { og slutter med }.

[;]
Alle linjer med kode slutter med semikolon (;). Det er for og si i fra til kompileren at det som kommer etter semikolon (;) er ett nytt objekt.

[SIZE=3]Andre småting:[/SIZE]
Kompileren

For og få en ny linje når du skriver ut tekst bruker du enten endl; eller \n.
Eksempler:
cout << "Linje 1\nLinje2";
Eller slik
cout << "Linje 1\n";
cout << "Linje 2";
Eller slik
cout << "Linje 1" << endl;
cout << "Linje 2";
Eller slik
cout << "Linje 1" << endl << "Linje 2";

[SIZE=3]Lagre tekst til variabler og skrive de ut senere:[/SIZE]

Kode

#include <iostream>
#include <string>
#include <conio.h>

using namespace std;
int main()
{
char navnalder[256];
int vekt;
string by;
	cout << "Alder og fulle navn: ";
	cin.getline (navnalder,256);
	cout << "Ca vekt uten kg: ";
	cin >> vekt;
	cout << "Hvilken by bor du i: ";
	cin >> by;
	cout << "Din alder og ditt fulle navn: " << navnalder << endl;
	cout << "Du veier " << vekt << "kg.\n";
	cout << by << " er byen din.\n";
	getch();
return 0;
}
[char navnalder[256];]
Gjør klar variabelen navnalder, char holder alle slags tegn. Klammen der det står [256] på slutten betyr hvor mange tegn variabelen kan huse. Du kan kalle variablene dine hva du vil.

[int vekt;]
int holder bare tall. Jeg bruker derfor int på denne fordi den kommer kun til og lagre tall.

[string by;]
string holder både bokstaver og tall.

[cin.getline (navnalder,256);]
Her lagres det tekst som brukeren skriver inn i variabelen navnalder. cin.getline brukes når man vil lagre tekst som inneholder mellomrom. cin.getline brukes slik: først skriver du cin.getline (, så skriver du navnet på variabelen og hvor mange tegn den kan huse.

[cin >> vekt;]
Her lagres det tall i variabelen vekt som brukeren skriver inn. cin brukes når man lagrer tekst uten mellomrom.

[cout << "Din alder og ditt fulle navn: " << navnalder << endl;]
Her skrives det ut hva brukeren har skrevet inn akkompagnert med tekst. Syntaksen brukes slik: først skriver du cout <<, så skriver du tekst om den skal komme først eller variabelen. All tekst må være innenfor hermetegn ("").

-Voldern
Sist endret av voldern; 21. juli 2005 kl. 20:04.
Pent, kanskje til og med jeg klarer å lære meg og kode. Burde kanskje vært postet i artikler-forumet?
Bra guide fortsett sånn
▼ ... over en uke senere ... ▼
Bra guide!

Det er en uting å ikke angi hvor store variablene er. I denne sammenhengen burde f.eks variabelen "int vekt" vært "unsigned short int vekt", siden variabelen bare skal holde på et positivt lite tall.
▼ ... noen uker senere ... ▼
En fin artikkel, spesielt bra for nybegynnere.
▼ ... noen måneder senere ... ▼
#include <iostream>
Det virker ikke hos meg!
Når jeg skal skrive ut koden i dev-c++, så står det "No such file or directory"
Og du har faktisk installert headerene? Søk etter iostream/iostream.h og se hva du kommer fram til. Mulig du mangler en miljøvariabel?
Hvordan innstalerer men de?
Karravolin
voldern's Avatar
Trådstarter
Sitat av ArneFreak
Hvordan innstalerer men de?
Vis hele sitatet...
Det skal bli med når du installerer Dev-cpp. Prøv å reinstaller å huke av for alle valg.
Sist endret av voldern; 24. november 2005 kl. 15:59.
Har gjort det, men nå står det bare "finner ikke angit fil." Bruker denne koden:

Kode

#include <iostream>
#include <conia.h>
using namespace std
int main()
{
      cout << "Yo/n";
      cout << "Yo";
      getch();
      return 0;
      }
Karravolin
voldern's Avatar
Trådstarter
Sitat av ArneFreak
Har gjort det, men nå står det bare "finner ikke angit fil." Bruker denne koden:

Kode

#include <conia.h>
Vis hele sitatet...
Biblioteket heter conio.h ikke conia.
Sitat av ArneFreak
Har gjort det, men nå står det bare "finner ikke angit fil." Bruker denne koden:

Kode

#include <iostream>
#include <conia.h>
using namespace std
int main()
{
      cout << "Yo/n";
      cout << "Yo";
      getch();
      return 0;
      }
Vis hele sitatet...
coniO.h ikke a
Takk, men det virker ikke alikevell...
prøv iostream.h da, ikke at det skal ha noen mening egentlig, men du kan jo teste
Karravolin
voldern's Avatar
Trådstarter
Sitat av s0rnes
prøv iostream.h da, ikke at det skal ha noen mening egentlig, men du kan jo teste
Vis hele sitatet...
Det er jo ikke meningen å bruke .h headere om man kan unngå det. .h er egentlig C headere, og fungerer både globalt og i std namespace. Du finner som regel .h i gamlere kode derfor velger de fleste kompilerer å inkludere disse headerne. Grunnen til at jeg bruker conio.h er at dette headere ikke finnes til C++. Kort fortalt så er headere uten .h spesifikk for C++ kode.
Sist endret av voldern; 24. november 2005 kl. 18:13.
Hva kan grunnen vere?
Sitat av voldern
Det er jo ikke meningen å bruke .h headere om man kan unngå det. .h er egentlig C headere, og fungerer både globalt og i std namespace. Du finner som regel .h i gamlere kode derfor velger de fleste kompilerer å inkludere disse headerne. Grunnen til at jeg bruker conio.h er at dette headere ikke finnes til C++. Kort fortalt så er headere uten .h spesifikk for C++ kode.
Vis hele sitatet...
akkurat det jeg sier, det skal ikke ha noen mening å prøve, men hvorfor ikke teste. =)
Nå kjører komplieringen, men filen starter ikke...
Det er jo ingen feil i loggen, så?
▼ ... noen måneder senere ... ▼
Om jeg vil ha noe til å gjenta seg?
Slik at det kommer
"En linje med tekst"
"En linje med tekst"
"En linje med tekst"
"En linje med tekst"
osv....
Karravolin
voldern's Avatar
Trådstarter
Da lager du en loop. Den kan se noe slikt ut:

Kode

#include <iostream>
using namespace std;
int main() {
int i;
for(i=0; i < 5; i++)
{
cout << "Dette er linje nr " << i << endl;
}
return 0;
}
Skal prøve å forklare koden, starten skal du være kjent med om du har lest guiden min.

for(i=0; i < 5; i++)

Der setter den "i" til 0. Så sjekker den om "i" er mindre en 5, hvis den er det fortsetter den. Så gjør den variabelen "i" som nå indeholder 0 et tall større. Så kjører den koden innen for { }. Den vil fortsette å kjøre koden til "i" har blitt 5.

Det står forresten bedre forklart her:
http://msdn.microsoft.com/library/de.../statem_14.asp
Sist endret av voldern; 25. januar 2006 kl. 22:50.
Sitat av voldern
Der setter den "i" til 0. Så sjekker den om "i" er mindre en 5, hvis den er det fortsetter den. Så gjør den variabelen "i" som nå indeholder 0 et tall større. Så kjører den koden innen for { }. Den vil fortsette å kjøre koden til "i" har blitt 5.
Vis hele sitatet...
Det er litt feil forklart, den inkrementerer ikke i før den kjører koden, den kjører koden først så inkrementerer den i, altså plusser på 1 til verdien av i. Slik som du har forklart ville koden vært ++i og ikke i++.
Karravolin
voldern's Avatar
Trådstarter
Sitat av dword
Det er litt feil forklart, den inkrementerer ikke i før den kjører koden, den kjører koden først så inkrementerer den i, altså plusser på 1 til verdien av i. Slik som du har forklart ville koden vært ++i og ikke i++.
Vis hele sitatet...
Takk for at du rettet meg, beklager til de som har blitt vranglært!
Man kan bruke while også som er simplere:

Kode

#include <iostream>
using namespace std;
int main() {
int i = 0; // setter variabelen i til 0
while(i++)
{
cout << "Dette er linje nr " << i << endl;
if(i == 5) break; // Når loopen er kommet til 5 slutter den
}
return 0;
}
while( [sant utrykk] ) {
[innhold] }

Som vist over så bruker du "break;" for å avslutte loopen.
m0b
m0b's Avatar
DonorAdministrator
Eller du kan bruke det utltimate:

Kode

for( int i=5; --i; )
  std::cout << "En linje med tekst" << std::endl;
Sist endret av m0b; 26. januar 2006 kl. 20:24.
ok danke sjøn folks.
Sist endret av tSig; 27. januar 2006 kl. 10:40.
▼ ... over en måned senere ... ▼

Kode

#include <cstdlib>
#include <iostream>
#include <fstream> 
using namespace std;

int main() { 
	int n;
	cout << "Hvor mange nettsends? ";
	cin >> n; 
	for (n; n>0; n--) {
		system("net send * walla baiia"); 
	}
	system("net send * Last man standing!");
	ofstream myfile; 
	myfile.open("netsend.txt");
		myfile << "Net send gjort med fin test." << endl; 
		myfile.close();
	return 0; 
}
hehe, det har jeg lært meg hit til. Men en ting lurer jeg på. Er hvordan i huleste jeg kan sette f.eks cout << "Beskjed?"; cin >> b; og at beskjed kommer i system("%beskjed%"); ?
m0b
m0b's Avatar
DonorAdministrator
Sjekk ut funksjonen strcat så finner du ut.
hehe, det har jeg lært meg hit til. Men en ting lurer jeg på. Er hvordan i huleste jeg kan sette f.eks cout << "Beskjed?"; cin >> b; og at beskjed kommer i system("%beskjed%"); ?
Vis hele sitatet...
Hvis b er en string, kan du bruke system(b.c_str()).