Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Funktionsparamter mit *... Fehler...

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
25.05.2006, 19:20 Uhr
Audron-AT-www
http://www.sXene.de Audron@sxene.de
(Operator)


Hallo!
Habe ein kleines Problem...
Bin mit meinem C++ Tutorial jetzt etwas weiter, nachdem ich es seit ein paar Stunden wieder aufgenommen habe.

Die Grundlagen habe ich nun verstanden und will eine einfache Multiplikationsfunktion schreiben. Dies funktioniert aber leider überhauptnicht... Mein Code:


C++:
#include <iostream.h>
#include <stdio.h>

void ee(){getchar();} //Auf Tastendruck warten...

long area(long laenge, long breite); // Funktionsprototyp...

    int main()
{

    int a , b;
    cin >> a, b;

    cout << area(a, b) << endl;

    ee();

    return 0;
}


    long area(long laenge, long breite) // Wirkliche Funktion
{
    return laenge * breite;
}



Ich gebe zwei Zahlen ein (z.b. "3 5") und bekommen meistens sowas wie "-324993439"... :/
Sollte aber 15 bekommen.
--
Mit freundlichen Grüßen
Audron, audron@sxene.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.05.2006, 19:50 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo
Auf die Variable b wird nichts eingelesen.

C++:
cin >> a >> b;


Das hat aber nix mit MFC zu tun.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 25.05.2006 um 19:53 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
25.05.2006, 20:10 Uhr
Audron-AT-www
http://www.sXene.de Audron@sxene.de
(Operator)



Zitat von Uwe:

Das hat aber nix mit MFC zu tun.


Aber doch mit VC++? Jedenfalls habichs damit gemacht..

Okay, vielen Dank
--
Mit freundlichen Grüßen
Audron, audron@sxene.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
26.05.2006, 08:14 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ansonsten kanns dir passieren das du nen überlauf erzeugst:

"long = long * long"

wenn du nun 2 zu große zahlen multiplizierst, reicht dein rückgabe-datentyp evtl nicht mehr aus.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
26.05.2006, 09:54 Uhr
xXx
Devil


wobei das cin mir so irgendwie komisch vorkommt... sollte das nicht std::cin >> a >> b; heißten?!


C++:
#include <iostream.h>
#include <stdio.h>

void wait(void);
int area(int nLenght, int nWidth);

int main()
{

    int nLenght;
    int nWidth;
  
    std::cin >> nLenght >> nWidth;
    std::cout << area(nLenght, nWidth) << std::endl;

    wait();

    return 0;
}

void wait(void)
{
    getchar();
}

int area(int nLenght, int nWidth)  // Was willst du da mit einem Long?! nen Integrer ist meines erachtens nach passend.
{
    return (nLenght * nWidth);
}

Dieser Post wurde am 26.05.2006 um 09:54 Uhr von xXx editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
26.05.2006, 10:58 Uhr
Audron-AT-www
http://www.sXene.de Audron@sxene.de
(Operator)


STD muss man meines Erachtens nur voranstellen, wenn man die Includedatei so deklariert:


C++:
#include <iostream>



und nicht


C++:
#include <iostream.h>



Ansonsten benutzt man einfach namespaces


C++:
using namespace std;




Wenn das irgendwie falsch ist, bitte belehrt mich eines besseren

Ich weiß leider nicht, was dieses std genau bedeutet. Ob es einen näheren Zusammenhang zu stdio hat?


Bearbeitung:

Noch ein paar Fragen...




Zitat:

void wait(void)
{
getchar();
}



Warum "void wait(void)" und nicht "void wait()"?


Zitat:

int area(int nLenght, int nWidth)
// Was willst du da mit einem Long?! nen Integrer ist meines erachtens nach passend.



Integer geht natürlich auch. Wollte nur ein bisschen weiter hinaus gehen, da ich vor allem Flächen mit Längen von Millimetern berechnen wollte und dazu Längen wie 235494. Integer unterstützen doch nur Zahlen bis 65k ? Deshalb habe ich da einen Long benutzt, damit sollte das klassen.

Ich hoffe ich frage nicht allzuviel, danke schonmal im vorraus!
--
Mit freundlichen Grüßen
Audron, audron@sxene.de

Dieser Post wurde am 26.05.2006 um 11:02 Uhr von Audron-AT-www editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
26.05.2006, 11:16 Uhr
xXx
Devil


also

C++:
void wait(void);
void wait();


Das void wird vom VC automatisch eingesetzt. Allerdings gibt es Compiler die damit Probleme haben würden.


C++:
#include <iostream>

Ist nur richtig! mit .h ist falsch.


C++:
using namespace std;

Das bedeutet das du die Namensumgebung std benutzt. Mit std:: greifst du genauso darauf zu. Ich hab jetzt keine Lust die vorteile aufzuzählen das std:: davor zu schreiben und das using oben weg zu lassen Ist zu viel


Bearbeitung:

C++:
int nLenght = 0;
int nWidth = 0;

Ist evt. auch noch besser.


Dieser Post wurde am 26.05.2006 um 11:18 Uhr von xXx editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
26.05.2006, 11:40 Uhr
Audron-AT-www
http://www.sXene.de Audron@sxene.de
(Operator)


Naja ich stell mir mal vor, wenn man dann "using namespace std;" benutzt und cout schreibt, er das std:: davor setzt. Wenn man jedoch z.b. eine Funktion einsetzt der man kein std davor stellen darf (wenns sowas gibt ) dann setzt er auch eins davor und man muss wohlmöglich alle Funktionen ändern und bei jeder anderen Funktion einzeln ein std davor setzen.
--
Mit freundlichen Grüßen
Audron, audron@sxene.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: