Programmkorrektur
-
Hallo,
folgendes Programm sollten wir korrigieren:
#include <iostream.h> #include <stdlib> void main() { for( int i=0; i<256; ++I ) cout << hex << i << ' ' << char(i); cout << "Wer hat am Ende nicht's zu feiern?\n" "\x46\x43 \x42\x61\x79\x65\x72\x6e! \x46\x43 \x42\x61\x79\x65\x72\x6e!"; system("cls"); cout << "Ändern Sie den Code so, dass 'Ä', 'ö' und 'ß'" " korrekt ausgegeben werden!" << endl )ich habe nun folgenden Code erstellt:
#include <iostream> #include <cstdlib> using namespace std; void main() { for( int i=0; i<256; ++i ) cout << hex << i << ' ' << char(i); cout << "Wer hat am Ende nicht's zu feiern?\n" << "\x46\x43 \x42\x61\x79\x65\x72\x6e! \x46\x43 \x42\x61\x79\x65\x72\x6e!"; system("cls"); cout << "Ändern Sie den Code so, dass 'Ä', 'ö' und 'ß'" << " korrekt ausgegeben werden!" << endl; }Was genau ist noch falsch? Das Kommandozeilenfenster erscheint jedenfalls ziemlich tot und ohne Ausgabe.
-
Hallo
Es heißt int statt void main und Systemaufrufe sollte man sich auch überlegen.
chrische
-
macht den code aber nicht falsch.
statt #include <cstdlib> würd ich die zeile einfach komplett rausschmeissen. void noch in int geändert und das stückchen code ist syntaktisch wunderbar richtig.
#include <iostream.h> muss übrigens nicht geändert werden. ist zwar deprecated, aber falsch is es nicht.
also so:
#include <iostream.h> using namespace std; int main() { for( int i=0; i<256; ++i ) cout << hex << i << ' ' << char(i); cout << "Wer hat am Ende nicht's zu feiern?\n" "\x46\x43 \x42\x61\x79\x65\x72\x6e! \x46\x43 \x42\x61\x79\x65\x72\x6e!"; system("cls"); cout << "Ändern Sie den Code so, dass 'Ä', 'ö' und 'ß'" " korrekt ausgegeben werden!" << endl; }ekliger code, aber korrekt
und wenn man noch esoterisch werden will, könnte man sich vielleicht noch über den inhalt der vorhandenen aussage gedanken machen. wenns denn teil der aufgabe sein soll.
-
Hallo
Wer weiß, wie sie es korrigieren sollten. Eventuell nach Standardkonformität?

chrische
-
#include <iostream.h> using namespace std;... die Kombination ist allerdings NICHT korrekt

-
kommt auf den compiler an

-
wenn
int main();
dann
return 0;
am Ende. Ausserdem erscheint mir der Befehl
system("cls");
sinnlos. Dann bekommt man nur noch die letzte Ausgabe zu Gesicht. Falsch ist er jedoch nicht.
Gruß
-
linu(x)bie schrieb:
wenn
int main();
dann
return 0;
am Ende.
Das ist Quatsch. Wird automatisch zurückgegeben.
linu(x)bie schrieb:
Dann bekommt man nur noch die letzte Ausgabe zu Gesicht. Falsch ist er jedoch nicht.
Er ist nicht standardkonform.
chrische
-
Hmm ... nach dem ganzen kram hier ...
da sollte eigentlich der Header #include <iomanip> fehlen ... sonnst geht std::hex nicht.
#include <iostream> #include <iomanip> int main() { for (unsigned short i = 0; i < 256; ++i) std::cout << std::hex << i << ' ' << static_cast<char>(i) << std::endl; std::cout << "Wer hat am Ende nicht's zu feiern?\n" << "\x46\x43 \x42\x61\x79\x65\x72\x6e! \x46\x43 \x42\x61\x79\x65\x72\x6e!" << std::endl; }zeigt auch, das es problemlos klappt(also die Ausgabe von den Umlauten). Allerdings waren nen par Optimierungen schon angebracht ... und das std::endl in der for-Schleife auch, da man sonnst keine übersichtliche Ausgabe erhält.