HEXA ?????

Intrebari despre limbajul C++, standardul C++, STL, OOP in C++ sau alte subiecte nelegate de VisualC++
Post Reply
User avatar
mulder
Junior
Junior
Posts: 24
Joined: 11 Jul 2007, 22:40

HEXA ?????

Post by mulder » 11 Jul 2007, 22:59

#include <iostream.h>

void main()
{
int i;
i = 0x1234ABCD;
cout << i << endl;
}

Dar afiseaza 305441741
cum fac sa iasa 0x1234ABCD ?????



User avatar
Marius Bancila
Fondator
Fondator
Posts: 2344
Joined: 11 Jul 2007, 11:45
Judet: Timiş
Location: Timisoara
Contact:

Re: HEXA ?????

Post by Marius Bancila » 12 Jul 2007, 07:53

sunt cateva probleme aici:

Code: Select all

#include <iostream.h>

void main()
{
int i;
i = 0x1234ABCD;
cout << i << endl;
}
Ca sa-ti raspund la intrebare, trebuie sa faci asa:

Code: Select all

cout << "0x" << hex << i << endl;
daca vrei sa te asiguri ca ai 8 digiti tot timpul, mai incluzi <iomanip> si faci asa:

Code: Select all

cout << "0x" << setfill('0') << setw(8) << hex << i << endl;
Problemele de care vorbeam:
  • include <iostream> nu <iostream.h>. cel din urma nici nu mai exista de la VC++ 7.1 (adica 2003); BTW, ce versiune folosesti?
  • main trebuie sa returneze int, nu void
Marius Bancila
Fondator Codexpert, Microsoft MVP VC++
Site personal | Blog

User avatar
mulder
Junior
Junior
Posts: 24
Joined: 11 Jul 2007, 22:40

Re: HEXA ?????

Post by mulder » 12 Jul 2007, 08:18

Folosesc VC6.
Merge si iostream.h si return void din main.
Nu da erori.

User avatar
Bornish
Specialist
Specialist
Posts: 7
Joined: 12 Jul 2007, 06:57
Location: Bucharest, Romania... sometimes
Contact:

Re: HEXA ?????

Post by Bornish » 12 Jul 2007, 08:30

Daca faci return void din main nu garantezi valoarea lui eax sa fie ceea ce-ti doresti. De exemplu, daca intr-o buna zi lansezi aplicatia cu scopul de a verifica incheierea executie in mod correct, testand daca thread-ul main exiteaza cu codul 0 (zero) nu va functiona intr-un mod definit. Intr-adevar, compilatorul nu plange dupa valoarea nereturnata. In general, plange daca tipul complex returnat de o functie nu poate fi convertit la cel al variabilei in care este copiata valoarea dupa intoarcerea din "call". :mrgreen:

// o fost umila mea parere ;)
Bogdan
ESRI Developer Network

Compilers demystified - Function pointers in Visual Basic 6.0
Enables the use of function pointers in VB6 and shows how to embed native code in a VB application.

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3778
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: HEXA ?????

Post by Ovidiu Cucu » 12 Jul 2007, 09:12

Pe langa ce-a spus Bogdan... practic, eu am testat "pe propria-mi piele" chestia asta.
Lansand un mic programel utilitar dintr-un kit de instalare msi, toata instalarea failiza daca respectivul programael intorcea alceva decat 0 (respectiv carcalaculul ce poate rezulta daca "void-uiesti" functia main). :)

[OT]
Bogdan, bine ai venit printre noi!

Dragos Cojocari
Membru++
Membru++
Posts: 789
Joined: 11 Jul 2007, 14:11

Re: HEXA ?????

Post by Dragos Cojocari » 12 Jul 2007, 16:42

mulder wrote:Merge si iostream.h Nu da erori.
Nu da erori ptr ca iostream.h este un header valid. Dar iostream.h nu apartine de STL, e vechiul header ptr iostream. Nu e STL si e deprecated de citiva ani buni. Da un ochi aici ptr o descriere simpla a diferentei intre <iostream> si <iostream.h>.

Post Reply