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

cout & std::cont

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 =)

 

Dela detta inlägg


Länk till inlägg
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]

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

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;

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...