• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

C++ Hilfe

Status
Für weitere Antworten geschlossen.
Der Rückgabewert stammt noch aus der DOS-Welt. Rückgabewert != 0 bedeutet Fehler, wobei die Rückgabewerte z.B. per ERRORLEVEL ausgewertet werden kann. So könnte man bestimmen, ob ein aufgetretener Fehler einer bestimmten Fehlergruppe zuzuordnen ist. Z.B. Fehler 2 -> CD nicht eingelegt. Auf diese weise könnte man hier eine abfrage hinzaubern und anschließend wieder das Programm aufrufen.

gruß,
Jumper, the II.
 
Consolen-Programme arbeiten aber noch immer in dieser Umgebung. Vergleichbares gibt ea aber auch unter Unix/Linux ;-)

Gruß,
Jumper, the II.
 
Ja .. so wies aussieht scho, wenn etwas nicht true / 0 zurückgibt, ist was faul ;)

lg,
n1ob
 
Abend,

ein häufig verwendetes System, das das ausnutzt ist zum Beispiel make. Je nach Rückgabewert vom Aufgerufenen Programm wird der Compileriervorgang abgebrochen, unten bestimmten Einstellungen trotzdem fortgesetzt, ... Würde das Programm jetzt keinen Rückgabewert haben müsste immer alles kompiliert werden, obwohl man schon viel früher hätte stoppne können (abgesehen davon geht die Fehlermeldung verloren)


Genauso kann man das auch bei graphischen Programmen noch nutzen.


N43
 
also in C++ würde es wie folgt aussehen:

Code:
#include <iostream.h>

void main(void){
     cout << "Hello World!\n";
}

Mit C kenne ich micht nicht so gut aus.
 
also in C++ würde es wie folgt aussehen:

Code:
#include <iostream.h>

void main(void){
     cout << "Hello World!\n";
}
Mit C kenne ich micht nicht so gut aus.
Abgesehen davon, dass es schon auf der ersten Seite steht ist es falsch;-)

1. muss es int main() heißen. Das (void) kann man schreiben braucht man aber nicht.
2. Header-Dateien haben in C++ keine Dateiendung und iostream und Co. liegen im namespace std.

N43
 
1. muss es int main() heißen. Das (void) kann man schreiben braucht man aber nicht.
2. Header-Dateien haben in C++ keine Dateiendung und iostream und Co. liegen im namespace std.

N43
Zu 1., stimmt nicht, ihr habt beide Recht, es kommt auf den Compiler bzw. den Dialekt an.
Zu 2., stimmt auch nicht, in diesem Fall hast du recht, aber die ohne .h sind einfach die überarbeiteten für C++(in diesem Punkt hast du recht). Aber es gibt viele die noch .h als Endung haben.

Edit: damit das nicht zu viel Offtopic wird, editiere ich nun.
Falsch Visual C++ ist keine IDE z. B. kann man die Toolkit Edition nur als Compiler verwenden (ich z.B. verwende Codeblocks aber Visual C++ Toolkit 2003 als Compiler) zudem hat N43 allgemein von Header-Dateien gesprochen. ;)
 
Zuletzt bearbeitet:
@Drakes:

von C++ gibt es keine Dialekte. Außer du meinst jetzt so Späße wie Visual C++, was aber auch nicht wirklich n Dialekt ist, sondern eine RAD IDE.

Außerdem sind die .h's auch keine C++ Headers, sondern noch die "alten" von C.

lg,
n1ob


PS: hat mir jemand ein Tut, EBook, etc., in Welchem das Shiften einigermaßen verständlich erklärt wird? Am besten auf deutsch.
 
Zu 1., stimmt nicht, ihr habt beide Recht, es kommt auf den Compiler bzw. den Dialekt an.
Zu 2., stimmt auch nicht, in diesem Fall hast du recht, aber die ohne .h sind einfach die überarbeiteten für C++(in diesem Punkt hast du recht). Aber es gibt viele die noch .h als Endung haben.

Edit: damit das nicht zu viel Offtopic wird, editiere ich nun.
Falsch Visual C++ ist keine IDE z. B. kann man die Toolkit Edition nur als Compiler verwenden (ich z.B. verwende Codeblocks aber Visual C++ Toolkit 2003 als Compiler) zudem hat N43 allgemein von Header-Dateien gesprochen. ;)
Bei den Header-Dateien haste recht, hab nur die der STL gemeint.

@int main: Hab's nochma im Standard (3.6.1) nachgelesen, prinzipiell kann der Compiler weitere Möglichkeiten anbieten, aber man sollte int verwenden, da jedes C++ Programm implizit 0 zurückgibt, wenn nichts anderes angegeben wurde. Außerdem kann man dann einfach den Compiler wechseln ohne sich über Fehler bei der main Funktion wundern zu müssen.

@N10B: Das shiften ist einfach. Ich nehm mal den >> als Beispiel mit 10001110 (Binär). Wenn du jetzt um 2 nach rechts shiftest, dann beudeutet das eine Division durch 2^2, also 4. Intern passiert dann folgendes: Die Bits werden rechts rausgeschoben und von links mit 0 aufgefüllt. Es entsteht also 00100011.
http://www.html.de/../members/n10b.html

N43
 
ok, wenn ich jetzt eine billige Verschlüsselung erreichen will.
also ich schieb einfach alles x bits nach irgendwo. wie stell ich des an?
Code:
void shift(int &alt, int key){
alt <<= key;
}
alt ist die variable, die geshiftet werden soll und key soll der schlüssel, also die anzahl der bits um die geschoben wird

wie falsch ist das?

lg,
n1ob
 
Hallo,

alles richtig, nur als Verschlüsselung würd ich das nicht nutzen, weil ja Daten verloren gehen ;)


N43
 
Hey,

wie jetz ?! Des War Blindgecodet und ich hab überhaupt keine Ahnung davon ^^.

und wie würd ich das jetzt anstellen müssen sodass keine Daten verloren gehen?

lg,
n1ob
 
Nicht unbedingt, wenn du beim Verschlüsseln drauf achtest, nicht. :wink:
Du musst dazu wissen wieviele Bitstellen dein Datentyp hat, dann kannst du überprüfen wie gross deine Zahl ist und so schauen ob du sie z.B. zwei nach links shiften kannst. :mrgreen: Problem: was machst du, wenn es nicht geht.
 
Doch du nimmst natürlich immer die gleiche Anzahl, wenn du dann noch nen Grösseren Datentyp nimmst, kannst du immer nach oben shiften.
 
Doch du nimmst natürlich immer die gleiche Anzahl, wenn du dann noch nen Grösseren Datentyp nimmst, kannst du immer nach oben shiften.
Ja wenn du einen größeren Datentyp nimmst, aber ansonsten weiste ja nicht, ob du geschiftet hattest.

Aber nochmal zum shiften: Das braucht man zum programmieren eigentlich kaum und ist eher auf maschienenebene interessant, wenn eine Variable mehrere Zahlen enthält, etc.


N43
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben