Untschiede von char und int
-
Mit
intfunktioniert das Programm einwandfrei.
Code Formatierung lernen ? Sowas lernen wir nicht in der Schule ^^
-
abgesehen davon, dass dein code weder sonderlich hübsch, portabel, performant noch gültiges C++ ist,
wenn du einen char aus dem int machst, dann wird nicht der zahlenwert als zahl in den char eingelesen, sondern das zeichen '1'. deine abfrage müsste dann also while
(auswahl == '1')heißen./edit: noch funktioniert es. zugegebenermaßen, die codeeinrückung macht es etwas schwer, alle fehler auf den ersten blick zu sehen.
-
Ich hab das Ding mal durch den Debugger gejagt, in jedem Durchlauf, unabhängig ob ich 1 oder 2 eingebe, geht das Programm in den else-Zweig, weil du die Variable "start" am Anfang der Funktion verbindung() neu deklarierst, die aber dann nicht initialisiert ist und deshalb einen zufälligen Wert hat.
in Sachen int <-> char hat das queer_boy schon soweit erklärt.
Gruß, U-Boot
-
ty
-
queer_boy schrieb:
abgesehen davon, dass dein code weder sonderlich hübsch, portabel, performant noch gültiges C++ ist,
Hab ich etwas verpasst? bis auf das fehlende #include <cstdlib> kann ich keinen Grund sehen dass das kein gültiges C++ sei.
-
#include <iostream> #include <cstdio> using namespace std; int start(); void verbindung(const int); int main() { int auswahl; do { system("cls"); verbindung(start()); cout << "\nZurueck zum Anfang: 1=Ja 2=Nein\n\n" << "Auswahl: "; cin >> auswahl; } while (auswahl == 1); } int start() { system("color a"); cout << "(1) Alle Verbindungen ueberwachen\n" << "(2) Welches Programm zu welcher Verbindung gehoert\n\n" << "Auswahl: "; int auswahl(0); cin >> auswahl; return auswahl; } void verbindung(const int auswahl) { if (auswahl == 1) { system("CLS"); cout << "Verbindungen werden ueberprueft ..." << endl; system("netstat -a"); } else { system("CLS"); cout << "\nWelches Programm zu welcher Verbindung gehoert" << endl; system("netstat -b"); } }so einmal formatierung korrigiert. Und es sind auch ein paar Fehler direkt dabei rausgeflogen. Allerdings ist das sicherlich auch jetzt kein guter Stil / Code.
-
einmal durch den compiler gejagt:
Comeau C/C++ 4.3.9 (Mar 27 2007 17:24:47) for ONLINE_EVALUATION_BETA1
Copyright 1988-2007 Comeau Computing. All rights reserved.
MODE:strict errors C++ noC++0x_extensions"ComeauTest.c", line 12: error: explicit type is missing ("int" assumed)
start()
^"ComeauTest.c", line 25: error: explicit type is missing ("int" assumed)
verbindung()
^
-
darthdespotism schrieb:
Hab ich etwas verpasst? bis auf das fehlende #include <cstdlib> kann ich keinen Grund sehen dass das kein gültiges C++ sei.
"start()" als Funktionskopf ist z.B. kein gültiges C++. Gültiges C(89), ja, aber ein C++-Compiler sollte bemängeln dass der Rückgabetyp fehlt.
-
und wo ist der vorteil wenn ich #include <cstdlib> mit einbinde ?
-
std::system liegt in dem Header. Sonst ist die Funktion nicht definiert!