Willkommen bei Network & Security     remoteshell-security.com
Partnerseiten
login.php?sid=4c5be0e97d5420a60f355dd1a2050ffe profile.php?mode=register&sid=4c5be0e97d5420a60f355dd1a2050ffe faq.php?sid=4c5be0e97d5420a60f355dd1a2050ffe memberlist.php?sid=4c5be0e97d5420a60f355dd1a2050ffe search.php?sid=4c5be0e97d5420a60f355dd1a2050ffe index.php?sid=4c5be0e97d5420a60f355dd1a2050ffe

Foren-Übersicht » Programmierung » [C++] Häufig gestellte Fragen
Neues Thema eröffnen  Neue Antwort erstellen Vorheriges Thema anzeigen :: Nächstes Thema anzeigen 
[C++] Häufig gestellte Fragen
BeitragVerfasst am: 19.07.2006 19:08 Antworten mit Zitat
Rebellion
Anmeldedatum: 04.01.2006
Beiträge: 151
Wohnort: %systemroot%




1. Wenn ich mein Programm ausführe, passiert nichts. Wieso?
2. Warum gibt der Compiler Fehlermeldungen aus, wenn ich Source-Codes von anderen Quellen kopiere?
3. Wie kann ich Umlaute in der Konsole ausgeben lassen?
4. Wie kann ich einzelne Wörter/Sätze in der Konsole farbig gestalten?
5. Wenn ich was inkludiere kommen Fehler (zB "undeclared identifier"). Wieso?

-----------------------------------------------------------------------------------------

1. Wenn ich mein Programm ausführe, passiert nichts. Wieso?

Das passiert den meisten Anfängern.
Du hast zB ne einfache Textausgabe:
Code:
#include <iostream>
using namespace std;

int main()
{
   cout << "Dieser Text wird auf der Konsole ausgegeben.";
   return 0;
}


Das Fenster flackert aber nur kurz auf und verschwindet wieder, da dieses Programm keine weiteren Anweisungen mehr hat.

Um das zu umgehen, gibst du dem Programm bekannt, dass ein Zeichen eingelesen werden soll:
Code:
#include <iostream>
using namespace std;

int main()
{
   cout << "Dieser Text wird auf der Konsole ausgegeben.";
   /* Hier wird ein Zeichen eingelesen
   sobald Enter gedrückt wird, schliesst sich das Programm */
   getchar();
   return 0;
}


Wenn du aber in deinem Programm schon vorher irgendwas eingelesen hast, musst du diese Funktion zweimal aufrufen, damit das verbleibende Zeichen \n aus dem Stream cin abgefangen wird.
Denn wenn du die Eingabetaste benutzt, um ne Eingabe abzuschliessen, wird zwar oft das Zeichen \n im Stream geschrieben, aber nicht zugewiesen. Also steht \n immernoch im Stream cin und wird wahrscheinlich beim nächsten Einlesen verarbeitet. Da C++ aber die Eingabe beim Zeichen \n für beendet hält, sieht's so aus, als wenn die weitere Eingabe einfach übersprungen bzw. ignoriert wird.
Code:
#include <iostream>
using namespace std;

int main()
{
   char eingabe;
   cout << "Geben Sie einen Text ein: ";
   cin >> eingabe; //erste Eingabe
   cout << "Sie haben " << eingabe << " eingegeben."; //Ausgabe
   getchar(); //hier musst du die Funktion
   getchar(); //zweimal aufrufen, um die Ausgabe zu sehen
   return 0;
}

BTW.. du kannst auch andere Funktionen, als getchar() verwenden.. zB cin.getline()

2. Warum gibt der Compiler Fehlermeldungen aus, wenn ich Source-Codes von anderen Quellen kopiere?

Das kommt daher, weil sich viele nicht an den C++ Standart halten.
Deswegen kann es vorkommen, dass dein Compiler es nicht unterstützt.
Code:
//unterstützen zwar auch viele Compiler
#include <iostream.h>
//aber richtig sieht es so aus
#include <iostream>

//ist richtig, aber im C++ Standart
//hat die Funktion main() den Rückgabetyp int
void main()

//etc.


3. Wie kann ich Umlaute in der Konsole ausgeben lassen?

Gibt meines Wissens nach drei Möglichkeiten.
Entweder einfach ASCII-Code in char umwandeln:
Code:
#include <iostream>
using namespace std;

int main()
{
   cout << char(154) << "bung";
   getchar();
   return 0;
}

/********** Übersicht **********/
//           Ü = 154
//           ü = 129
//           Ä = 142
//           ä = 132
//           Ö = 153
//           ö = 148
/*******************************/


Oder wir speichern die ASCII-Codes als unsigned char in ner Konstante:
Code:
#include <iostream>
using namespace std;

const unsigned char UE = static_cast<unsigned char>(154);
const unsigned char ue = static_cast<unsigned char>(129);
const unsigned char AE = static_cast<unsigned char>(142);
const unsigned char ae = static_cast<unsigned char>(132);
const unsigned char OE = static_cast<unsigned char>(153);
const unsigned char oe = static_cast<unsigned char>(148);

int main()
{
   cout << UE << "bung";
   getchar();
   return 0;
}


Oder man fügt die Umlaute über Escape-Sequenzen hexadezimal oder oktal ein.
Dazu geb ich jetzt kein Beispiel, weil es nicht zu empfehlen ist.

4. Wie kann ich einzelne Wörter/Sätze in der Konsole farbig gestalten?

Ist nicht schwer...
Code:
#include <iostream>
#include <windows.h>
using namespace std;

int main()
{
    HANDLE hL = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hL,FOREGROUND_GREEN);
    cout << "Dies ist ein gruener Text." << endl;
    SetConsoleTextAttribute(hL,FOREGROUND_RED);
    cout << "Dies ist ein roter Text." << endl;
    SetConsoleTextAttribute(hL,FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_GREEN);
    cout << "So ist die Schriftfarbe wieder normal.";
    getchar();
    return 0;
}


5. Wenn ich was inkludiere kommen Fehler (zB "undeclared identifier"). Wieso?

Der Inhalt von vielen Standart Headerfiles liegt im Namespace std.
Also gibst du den Compiler bekannt, wo er suchen soll:
Code:
using namespace std;


--------

So das war's erstmal.. ich erweiter die Liste später noch.
Benutzer-Profile anzeigen Private Nachricht senden ICQ-Nummer
BeitragVerfasst am: 19.07.2006 19:29 Antworten mit Zitat
Cerox
Anmeldedatum: 31.12.2005
Beiträge: 782
Wohnort: Engelskirchen




Nettes Tutorial für Anfänger - habs jetzt nur überflogen, da es für mich nicht interessant ist und ich nur in der Schule mit einem Windows Compiler programmiere.
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
BeitragVerfasst am: 19.07.2006 21:14 Antworten mit Zitat
Rebellion
Anmeldedatum: 04.01.2006
Beiträge: 151
Wohnort: %systemroot%




Das sollte eher sowas, wie eine FAQ sein.
Am Einsteiger Tutorial arbeite ich noch (hab dafür aber nicht immer zeit) Wink
Benutzer-Profile anzeigen Private Nachricht senden ICQ-Nummer
BeitragVerfasst am: 20.07.2006 06:31 Antworten mit Zitat
Lukas
Anmeldedatum: 31.12.2005
Beiträge: 257
Wohnort: Wien




Hmmm ich will dir ja nichts unterstellen aba diese FAQ kommt mir doch sehr bekannt vor.
Du bist nicht zufällig member vom c/c++ board? (kann auch ein anderes sein) Very Happy

lg
Benutzer-Profile anzeigen Private Nachricht senden
BeitragVerfasst am: 20.07.2006 14:59 Antworten mit Zitat
Rebellion
Anmeldedatum: 04.01.2006
Beiträge: 151
Wohnort: %systemroot%




Das ist ne andere FAQ.

Kannst ja vergleichen Wink

Die FAQ vom C++ Board kenn ich aber - da hab ich vielleicht noch was von, aber sonst ist es (oder wird es.. kommt ja noch mehr) ne eigene FAQ.

FAQ's sind ja oft gleich gehalten, da es ja um's selbe Thema geht. Wink

Aber hast schon recht... ich hab die FAQ vom C++ Board öfters gelesen und daher hab ich vieles davon noch im Gedächnis.
Benutzer-Profile anzeigen Private Nachricht senden ICQ-Nummer
[C++] Häufig gestellte Fragen
Foren-Übersicht » Programmierung
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Alle Zeiten sind GMT + 1 Stunde  
Seite 1 von 1  

  
  
 Neues Thema eröffnen  Neue Antwort erstellen  


Forensicherheit

Powered by phpBB © 2001-2004 phpBB Group
phpBB Style by Vjacheslav Trushkin
Deutsche Übersetzung von phpBB.de


remoteshell-security.com | Partner | Boardregeln | Impressum