» »

DevC++ težava?

DevC++ težava?

Myth ::

Pozdravljeni spet. :)

No, zdaj sn na Windows instaliral Dev C++. Nikoli prej nisn kaj extra C++ programiral doma, zdaj pa potrebujem pač. No, imam eno težavo.

Recimo primerček:

#include < iostream.h >

int main()
{
cout < < "Dober dan!";
return 0;
}

Compiler javi tole:
D:\Šola\Programiranje I\Prvi teden\vaja1.cpp In function `int main()':
5 D:\Šola\Programiranje I\Prvi teden\vaja1.cpp `cout' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)

Compiler loger pa tole:
Compiler: Default compiler
Executing g++.exe...
g++.exe "D:\Šola\Programiranje I\Prvi teden\vaja1.cpp" -o "D:\Šola\Programiranje I\Prvi teden\vaja1.exe" -I"D:\Programi\Dev C++\include\c++\3.3.1" -I"D:\Programi\Dev C++\include\c++\3.3.1\mingw32" -I"D:\Programi\Dev C++\include\c++\3.3.1\backward" -I"D:\Programi\Dev C++\lib\gcc-lib\mingw32\3.3.1\include" -I"D:\Programi\Dev C++\include" -L"D:\Programi\Dev C++\lib"
D:/Šola/Programiranje I/Prvi teden/vaja1.cpp: In function `int main()':
D:/Šola/Programiranje I/Prvi teden/vaja1.cpp:5: error: `cout' undeclared (first
use this function)
D:/Šola/Programiranje I/Prvi teden/vaja1.cpp:5: error: (Each undeclared
identifier is reported only once for each function it appears in.)
Execution terminated

Mene zanima v čem točno je problem da se to ne prevede, ker na linuxu ni blo takih problemov. Je pa res da je blo tam drugo orodje uporabljeno. Možno da Dev C++ drugace inkluda kniznice? :\
¤ Space is Mystery. And Myth is on Earth. ¤

kihc ::

Čudno. Katero verzijo pa uporabljaš? Vseeno lahko probaš takole:
#include <iostream>

int main()
{
std::cout<<"Lala";
return 0;
}
x

alum ::

uporabljaj namespace, kot ti je ze kihc namignil.

#inlude <iostream>
using namespace std;

Myth ::

Zanimivo. Tako pa deluje. Ampak ko poženem, se v sekundi pojavi in izgine okno z "pozdravom". A se ne da drugače to še zapisati? :\ Prvič vidim uporabo std:: ... mi smo uporabili v sql nekaj takega še: using namespace std; Bom poskusil še tak.

edit: hvala, wakum. Ravno to sem mislil. :) Še vedno pa mi se okno z vsebino pojavi in izgine v sekundi. Kaj pa bi to bilo narobe? :\
¤ Space is Mystery. And Myth is on Earth. ¤

Zgodovina sprememb…

  • spremenilo: Myth ()

alum ::

zapre se ti, ker se program konca, ko se izvede koda.

torej ce hoces, da se ti ne konca, dodaj na koncu
system("PAUSE");

ali pa zaganjaj v cmd promptu.

kihc ::

Na konc moraš še neki dadat da ustaviš izhod. Ponavadi se uporablja system("PAUSE"), samo to dela samo na win boxih, ena bolj elegantnih metod je pa cin.ignore(); cin.get();

se pravi:

#include ...
using namspace std;
int main()
{
...

cin.ignore();
cin.get();
return 0;
}
x

OwcA ::

Še lepše

cin.ignore().get(); ;)

P.S. Globalna uporaba imenskega prostora std je grdo početje, ker s tem tudi vse svoje stvari zmečeš v std, kar se naj ne bi počelo, saj je vsebina std določena s standardom.
Otroška radovednost - gonilo napredka.

Myth ::

Amm... tale cin.ignore().get();Nekako se spomnim da smo mi pisali cin.getline(); Ali pa je to kasneje pri cem drugem?!?... :\
¤ Space is Mystery. And Myth is on Earth. ¤

kihc ::

Fora je samo da s nekim ukazom programu preprečiš da se zapre ... lahko bi tud uporabu recimo cin>>a, ker potem program čaka da najprej nekaj narediš, potem se šele zapre.
x

Myth ::

Hmmm... a ve kdo v čem je pa tu fora?

Koda:
case '10': cout < < "Oktober";
case '11': cout < < "November";
case '12': cout < < "December";

Compiler javi:
18 D:\Šola\Programiranje I\Prvi teden\vaja3.cpp:26 [Warning] multi-character character constant
¤ Space is Mystery. And Myth is on Earth. ¤

OwcA ::

Osnoven odgovor je, uporabi dvojne narekovaje.

Ampak žal tudi potem ne bo delalo, ker boš primerjal kazalce na začasne nize znakov.
Najboljše je uporabiti std::string in if ali pa števila namesto nizov znakov.
Otroška radovednost - gonilo napredka.

Myth ::

Ah.... compiler loger javi da je lepo skompajlalo.
A mi lahko kdo razjasni zakaj se potem ne izpise vrstica, ce jo mam v case stavku?

Primer: case '12': cout < < dan < < "December" < < leto < < endl;
Vpisem podatke, a v programu se stavek ne izpise... :\
¤ Space is Mystery. And Myth is on Earth. ¤

OwcA ::

A ti sploh bereš kaj drugi pišemo?

P.S. če imaš warning to ni lepo prevedeno.
Otroška radovednost - gonilo napredka.

Myth ::

V bistvu smo vsi mimo rekli, brez narekovajev je. :D In gre zadeva zelo lepo skozi. Thc anyway.
¤ Space is Mystery. And Myth is on Earth. ¤

OwcA ::

Brez narekovajev je čisto nekaj drugega.
Človek bi pričakoval, da ločuješ med nizom znakov in številom, ampak tudi prav, vzeto na znanje za v prihodnje.
Otroška radovednost - gonilo napredka.

Myth ::

int - brez narekovajev
char - enojni narekovaji
string - dvojni narekovaji torej
;)
¤ Space is Mystery. And Myth is on Earth. ¤

OwcA ::

S tem, da se je potrebno zavedati, da je string niz znakov (array) in da pravzaprav delamo s kazalcem.
Otroška radovednost - gonilo napredka.

Tutankhamun ::

probi tko:
cout << dan << "December" << leto << endl << flush;

Gundolf ::

cout << dan << "December" << leto << endl << flush;

Ja ne tega delat. endl in flush zapored je brezveze. endl že vsebuje flush.

Mr|ce, ti pa lahko kodo označiš s tagom [ st.koda c ] (brez presledkov po oklepaju in pred zaklepajem) in [ /st.koda c ].


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

c++ BRANJE IZ DATOTEKE

Oddelek: Programiranje
202578 (1991) Tutankhamun
»

Kako gre to v Dev C++ ???

Oddelek: Programiranje
142344 (1815) bi0s
»

[C++] Linux

Oddelek: Programiranje
171964 (1384) CCfly
»

[C++] Problem z dedovanjem šablon (template inhieritance)

Oddelek: Programiranje
131659 (1537) Gundolf
»

Pomnilnik in c++

Oddelek: Programiranje
242179 (1888) Gundolf

Več podobnih tem