Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Funktion gibt keinen Wert aus

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 < [ 2 ]
000
09.02.2008, 23:22 Uhr
studistudi



Hallo C++-Programmierer!

Ich bin noch sehr neu bei C++ und wollte erstmals eine Funktion programmieren. Laut meinem Buch sollte die Konsolenapplikation die Summe von 10 und 32 ausgeben, in der Praxis gibt sie aber nichts aus. Kann jemand helfen? Wäre superdankbar für Antwort. Grüsse Pascal Studer

Programmcode:


C++:
#include <iostream>
using namespace std;
int Summe (int, int);
int main()
{
cout << Summe(10,32) << endl;
return 0;
}

int Summe (int Zahl1, int Zahl2)
{
    int summe = Zahl1 + Zahl2;
    
    cin.get();
    return summe;
    
}


--
Dev-C++
Windows Vista x86

Dieser Post wurde am 10.02.2008 um 11:58 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.02.2008, 01:18 Uhr
xXx
Devil



C++:
#include <iostream>
Header <iostream> (Teil des C++-Standards) einbinden.

C++:
using namespace std;
Namensraum std nutzen. Dadurch wird eigtl. die Funktion eines Namensraums aufgehoben, aber okay das wirst du bald sehen

C++:
int Summe (int, int);
Dekleration der Funktion "Summe" mit zwei Parametern(jeweils Ganzzahlen => Integer) und Rückgabetyp int (d.h. die Summe von beiden Ganzzahlen darf den Raum einer Ganzzahl nicht überschreiten?)

C++:
int main()
Programmeinsprungspunkt. Wird im Standard differenziert von normalen Funktionen behandelt. Gültig ist main(), als auch main(int, char**) als Programmeinsprungspunkt.

C++:
{
Scope der Funktion "main".

C++:
cout << Summe(10,32) << endl;
Den Rückgabewert der Funktion Summe mit den Parametern 10, 32 in den Ausgabepuffer "streamen" und dann diesen "flushen" und ein "Newline"-Zeichen einfügen. D.h. den Inhalt ausgeben und eine neue Zeile anfangen

C++:
return 0;
Im Standard definiert ist, das 0 der Rückgabewert für ein fehlerfrei abgearbeitetes Programm sein soll. Wird aber als Standard angenommen und kann d.h. gespart werden!

C++:
}
schließen des Scopes der Funktion "main".

usw. usf.
Das Problem bei deiner Funktion Summe ist, das du durch

C++:
cin.get();
Auf die Eingabe eines Zeichens wartest. Wenn du diese Eingabe tätigst, bekommst du bestimmt die gewünschte Ausgabe!


C++:
#include <iostream>

int sum(int, int);

int main()
{
    std::cout << sum(10, 32) << std::endl;
    std::cin.get();
}

inline int sum(const int first, const int second)
{ return first + second; }
so sollte es doch in Ordnung sein
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
10.02.2008, 11:51 Uhr
studistudi



Ok hat Funktioniert!

Sieht zwar alles ein bisschen komisch aus ( das mit den Methoden hatte ich nocht nicht (:)
Ich hatte das cin.get(); eben benutzt damit das Fenster nicht gleich wieder verschwindet..

Danke viel mal
--
Dev-C++
Windows Vista x86
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
10.02.2008, 11:59 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



Zitat von xXx:


C++:
#include <iostream>

int sum(int, int);

int main()
{
    std::cout << sum(10, 32) << std::endl;
    std::cin.get();
}

inline int sum(const int first, const int second)
{ return first + second; }
so sollte es doch in Ordnung sein


da muss ich dir widersprechen.


C++:
int sum(int, int);



und


C++:
inline int sum(const int, const int);



ist nicht das gleiche.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
10.02.2008, 12:09 Uhr
studistudi



Was sollte immer das Standard?
std::cout
std::endl
std::cin.get()

Und was bedeutet inline?
--
Dev-C++
Windows Vista x86
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
10.02.2008, 12:48 Uhr
xXx
Devil



Zitat:
Und was bedeutet inline?
Das die Funktion direkt an der Stelle eingeüft wird, wo du sie aufrufst und das du damit sparst, zu ihr erst hinspringen zu müssen. Das bläht das Programm aber auf(sollte nur bei kleinen Funk. genutzt werden) ... genaueres findest du aber in jedem guten Handbuch/Tutorial.


Zitat:
Was sollte immer das Standard?
std::cout
std::endl
std::cin.get()
Nunja, worauf bezieht sich deine Frage?
generell gibt es einen Standard für C++, an den sich alle C++-Compiler versuchen zu halten. std:: sagt halt nur, dass die Funktion im Namensraum std liegt. Wenn du using namespace std; vorher schon geschrieben hast, kannst du dir das sparen. (es kann aber wieder zu namensüberschneidungen kommen ...)

@FloSoft: Ja sorry hab es beim editieren nicht gesehen ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
10.02.2008, 13:31 Uhr
studistudi



Danke xXx
meine Frage bezog sich genau auf deine Antwort
--
Dev-C++
Windows Vista x86
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
10.02.2008, 13:33 Uhr
studistudi



Das Programm geht anscheinend auch so
also ohne std::

C++:
#include <iostream>
using namespace std;
int sum(int, int);

int main()
{
    cout << sum(10, 32) << endl;
    cin.get();
}

inline int sum(const int first, const int second)
{ return first + second; }



--
Dev-C++
Windows Vista x86

Dieser Post wurde am 10.02.2008 um 13:34 Uhr von studistudi editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
10.02.2008, 14:13 Uhr
xXx
Devil


Ja dann durch using namespace hebst du ja die Trennung durch den Namespace auf!

www.cplusplus.com/doc/tutorial/namespaces.html
www.cprogramming.com/tutorial/namespaces.html
http://en.wikipedia.org/wiki/Namespace_(computer_science)
www.cs.ucf.edu/~leavens/larchc++manual/lcpp_72.html
usw. guck einfach mal nach bei einer Suchmaschine deiner Wahl.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
10.02.2008, 17:03 Uhr
studistudi




Zitat von xXx:
Ja dann durch using namespace hebst du ja die Trennung durch den Namespace auf!

www.cplusplus.com/doc/tutorial/namespaces.html
www.cprogramming.com/tutorial/namespaces.html
http://en.wikipedia.org/wiki/Namespace_(computer_science)
www.cs.ucf.edu/~leavens/larchc++manual/lcpp_72.html
usw. guck einfach mal nach bei einer Suchmaschine deiner Wahl.


Hey danke für die Tutorials!
--
Dev-C++
Windows Vista x86
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


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: