Gå til innhold

Dev C++ eller hva den nå heter


Anbefalte innlegg

Skrevet (endret)

funker ikke getche() eller getch() i dev C++?

i den andre kompilatoren jeg har må man include conio.h, men når jeg prøver å include det her, funker den fremdeles ikke... :no:

 

... skulle vært en sånn chat her i tilleg til det som er her... lettere enn via posting når det er flere pålogga

Endret av zirener
Videoannonse
Annonse
Skrevet

Jeg har i hovedsak begynt med C, ikke C++.

I C må jeg bruke getchar() istedet for cin.get().

hvis du skal bruke getchar() må du inkludere biblioteket stdio.h

Altså:

 

#include <stdio.h>

Skrevet (endret)
Jeg har i hovedsak begynt med C, ikke C++.

I C må jeg bruke getchar() istedet for cin.get().

hvis du skal bruke getchar() må du inkludere biblioteket stdio.h

Altså:

 

#include <stdio.h>

Funker ikke for meg :no:

Kansje det er fordi jeg bruker C++??

Er igrunn ikke så farlig når det er andre måter å få til sånne greier på ;):p

Endret av zirener
Skrevet
Jeg har i hovedsak begynt med C, ikke C++.

I C må jeg bruke getchar() istedet for cin.get().

hvis du skal bruke getchar() må du inkludere biblioteket stdio.h

Altså:

 

#include <stdio.h>

Funker ikke for meg :no:

Kansje det er fordi jeg bruker C++??

Er igrunn ikke så farlig når det er andre måter å få til sånne greier på ;):p

Hvorfor ikke cin.get() eller system ("pause") ?

Skrevet (endret)
Jeg har i hovedsak begynt med C, ikke C++.

I C må jeg bruke getchar() istedet for cin.get().

hvis du skal bruke getchar() må du inkludere biblioteket stdio.h

Altså:

 

#include <stdio.h>

Funker ikke for meg :no:

Kansje det er fordi jeg bruker C++??

Er igrunn ikke så farlig når det er andre måter å få til sånne greier på ;):p

Hvorfor ikke cin.get() eller system ("pause") ?

Nei, nei :p

Ikke sånn ment :cool:

Syns det bare var litt rart at jeg ikke kunne bruker getch(), eller getche()...funker ikke på den dev kompilatoren...eller det kan man sikker men ;).

Vet noen åssen man kan få det til å stå noe annet enn

"Trykk en tast for å fortsette..." når man bruker system("pause") funksjonen?

Endret av zirener
Skrevet
Jeg har i hovedsak begynt med C, ikke C++.

I C må jeg bruke getchar() istedet for cin.get().

hvis du skal bruke getchar() må du inkludere biblioteket stdio.h

Altså:

 

#include <stdio.h>

Funker ikke for meg :no:

Kansje det er fordi jeg bruker C++??

Er igrunn ikke så farlig når det er andre måter å få til sånne greier på ;):p

Hvorfor ikke cin.get() eller system ("pause") ?

Nei, nei :p

Ikke sånn ment :cool:

Syns det bare var litt rart at jeg ikke kunne bruker getch(), eller getche()...funker ikke på den dev kompilatoren...eller det kan man sikker men ;).

Vet noen åssen man kan få det til å stå noe annet enn

"Trykk en tast for å fortsette..." når man bruker system("pause") funksjonen?

Du kan ikke bruke en C kommando i C++ da kanskje, er usikker der men...

For å få det til og stå noe annet, bruk cin.get();

Eks:

#include <iostream>
using namespace std;
int main()
{
cout << "Blabla";
cout << "Trykk en tast, bla bla bla text da!";
cin.get();
return(0);  //Mange som glemmer denne i posten ser jeg!
}

Da står det Trykk en tast, bla bla bla text da! når du skal trykke enter for å fortsette ;)

Skrevet (endret)

Det er godt mulig at grunnen til at du ikke kan bruke getch() eller getche() er bibliotekt conio.h.

Endret av Gunderz
Skrevet

Først av alt, jeg har aldri brukt Dev-C++, og kan ikke snakke direkte om den. Men jeg vet hva som SKAL være, så om Dev-C++ ikke følger standarden er ikke det mitt problem :)

 

Søk etter filen iostream.h. Når/hvis du finner den skriver du inn hele banen i include-setningen. Da kan det ikke gå galt

Eller enda bedre, legg til Include-pathen din i kompilatorens Include-søke-path. Dette gjøre som oftest ved å skrive -I[Path], f.eks.: -IC:\...\Include. I Borland kan du dessuten legge den til i en konfigurasjonsfil, hvordan det er med Dev-C++ vet jeg ikke.

EDIT: Manuel hadde visst allerede sagt det :)

 

 

Forresten så er det like greit å bruke system()-kallet, som er definert i headeren cstdlib.h. Da kan du sende kommandoer til OS'et på samme måte som du gjør i konsollen (dir, pause, ping, copy, type, whatever).

Vel, egentlig ikke. Det er "good programming practice" å bruke cin.get() i steden. Det er flere grunner til dette, først og fremst at cin.get() er Standard C++, og gjør det samme overalt.

 

 

Det er vel strengt tatt ikke nødvendig å avslutte med en return-setning i en main-funksjon. Jeg trodde den bare var der for å understreke at det er en funksjon (gir en returverdi som er null)?

Nok en gang, det er "good programming practice" å gjøre det, og flere kompilatorer gir advarsler (eller 'warnings' for semi-amerikanske grinebitere ;) ) dersom du ikke returnerer noe. return 0 forteller at programmet har kjørt ferdig og avsluttet uten feil.

 

 

Dere kan evt. prøve å skrive "iostream.h", istedenfor "iostream". Sistnevnte er et "nyere" innslag, og det er kanskje av den grunn den bare virker når filendelsen er cpp. C++ er nyere, men er bakoverkompatibel med C.

C++ sin bakoverkompatibilitet med C gjelder selvfølgelig ikke biblioteket. IO i C gjøres med stdio.h

 

 

Hva bakgrunnen på konsollet angår er det sannsynligvis at den kompilatoren med hvit bakgrunn enten kjører på et system med hvit konsoll-bakgrunn, eller at den lager et eget konsoll - med hvit bakgrunn - som den kjører programmet i.

 

 

Og som Gunderz peker ut, trenger du conio.h for å bruke getch(). conio.h er ikke portable, i motsetning til funksjonen cin.get(). cin.get() er dessuten så god at den tilogmed er nevnt i C++-Standarden :)

Skrevet (endret)
Det er godt mulig at grunnen til at du ikke kan bruke getch() eller getche() er bibliotekt  conio.h.

Funka med getch() og getche() nå...

Glemte da ikke å include conio.h forige gang jeg prøvde? ;)

 

*sukk*

 

Kansje jeg skrev det feil :p

Endret av zirener
Skrevet

Gadd ikke lese alt men dette skulle funke:

 

#include <iostream>

using namespace std;

int main()

{

cout<<"hello world" <<endl;

system("PAUSE");

return 0;

}

Skrevet
Gadd ikke lese alt men dette skulle funke:

 

...

Akkurat. Det burde du ha giddet. system("pause") har allerede blitt nevnt, og det har blitt diskutert hvorfor det er et dårlig alternativ.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...