Just nu i M3-nätverket
Gå till innehåll

cout & std::cont


GronK

Rekommendera Poster

Alla hjälp sidor och filer jag hitta om c++ säger att detta bode funka.

 

cout << "hej" <<endl; //Funkar inte för mig.

std::cout << "hej" << std::endl; //Funkar

 

Varför???

 

enligt cplusplus.nu borde detta funka

 

#include <iostream>

#include <conio>

int main()

{

int tal;

tal = 5;

cout << tal;

getch();

}

 

Felen jag får är <conio>, getch() fins inte. och som innan cout << tal; funkar ej. samma där att om jag lägger till std:: så funkar det.

 

Varför??

 

Först så trodde jag att det var något fel på Borland C++ så jag instalerade av cplusplus.nu rekomenderade MinGW GCC. Men denna kompilatorn ger samma fel??

 

Jag är förvirrad =)

 

Länk till kommentar
Dela på andra webbplatser

testa lägg till:

 

using namespace std;

 

efter du har kört dina include

 

det handlar om att funktionerna ligger i namespace standard std::

 

gl

 

[inlägget ändrat 2004-03-11 17:03:59 av Illion]

Länk till kommentar
Dela på andra webbplatser

jerker olofsson

conio finns inte enligt C++-standarden utan är något windows/dos specifikt.

 

den heter <conio.h> i C och ingenting annat.

 

I C++ heter standard-include-filerna inte .h . Men eftersom <conio> inte är en standard-fil varken i C eller C++ så finns det ingen <cconio> utan fu får inkludera <conio.h> om den skall användas.

 

Samma sak gäller cout och std::cout.

iostream är bara C++, men innan standarden var klar, så började vissa kompilatorer implementera iostream i filen <iostream.h>. Där ligger inte cout i std:: namespacet. Det gör det däremot (korrekt) i <iostream>.

 

C include filer supportas också i C++, men prefixas då med c och .h tas bort (med självklart stödjer de också .h sättet). Exempelvis <stdio.h> heter med C++ <cstdio>. Men båda sätten fungerar i C++.

 

Dock skall alla funktioner läggas i std:: namespacet om du inkluderar <cstdio>. Alltså std::printf(); osv.. Men det är inte alla kompilatorer som gör.

 

Inkluderar du <iostream> så måste du använda dig av ett av följande sätt:

 

1) Vilka klasser / funktioner du vill använda från std:: namespacet.

2) Välja att använda alla funktioner och klasser från std:: (Vilket inte rekomenderas då ditt program kan sluta fungera i en senare C++ standard)

3) Eller skriva std::cout.

 

3 vet du ju tydligen redan hur man använder.

 

1 och 2 används genom using direktivet.

1) using std::cout;

using std::endl;

using std::ifstream;

// .. osv ..

2) using namespace std;

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...