Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

#Error

Hallo, ich wollte ein wenig mit C++ üben und da wollte ich ganz speziel "if,elif,ifdef,ifndef...) üben. Da habe ich die "Hello World"-Datei ein wenig geändert, sodass sie so aussieht:

 #include <iostream>
using namespace std;
main()
{
   #define Say_Hello cout<< "Hello World\n";
   Say_Hello
   
   
   #ifndef Say_Hello1
   cout <<"Hello World\n";
   #elif
        #error Say_Hello ist nicht definert
   #endif






}



Dann zeigte er mir aber den Error:
 make -k all
g++ Hello.cpp -o Hello
Hello.cpp:11:10: #error Say_Hello ist nicht definert
make: *** [Hello] Error 1
make: Target `all' not remade because of errors.


Ich habe schon alles ausprobiert... Aber das Problem behebt sich sofort, wenn man anstatt"Say_Hello1" "Say_Hello" eingibt.
Es wird auch NUR das "#error Say_Hello ist nicht definert" unterstrichen.
 


Antworten zu #Error:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hi,

alsoo bei der zeile:

Say_Hello
must du noch ein semikolon hinten dran setzen ";"

bei #ifndef
#ifndef Say_Hello
 cout << "Hello World\n";
#else
 #error Say Hello ist nicht definiert
#endif

versuch das mal.. wenn nich.. dann versuchs mit #warning ! 
« Letzte Änderung: 13.04.07, 22:55:19 von Sniper-Hawk »

Also ich habe es jetzt mit "#warning" versucht und er zeigt jetzt nur noch ein gelbes Warndreieck an.Also ich kann die Datei jetzt mit "Run" starten! Nur ein Problem gibt es noch: Wenn ich die bedingte Übersetzung mit "Ifdef" und als "Symbol" "Say_Hello1 wähle, gibt er in der Konsole den Text hinter Warning (Say Hello ist nicht definiert) nicht aus, sondern nur den Text "Hello World". Wenn ich das ganze mit #error, anstatt mit #warning starte, gibt er immer noch die Fehlermeldung
make -k all
g++ Hello.cpp -o Hello
Hello.cpp:11:10: #error Say_Hello ist nicht definert
make: *** [Hello] Error 1
make: Target `all' not remade because of errors.

aus. Bei Warning sagt er immer nur
make -k all
g++ Hallo.cpp -o Hallo
Hallo.cpp:13:10: warning: #warning Say Hello ist nicht definiert\n
Hallo.cpp:18:2: warning: no newline at end of file
   

« Letzte Änderung: 14.04.07, 09:54:53 von Speedy_92 »

Also ich habe es jetzt mit "#warning" versucht und er zeigt jetzt nur noch ein gelbes Warndreieck an.Also ich kann die Datei jetzt mit "Run" starten! Nur ein Problem gibt es noch: Wenn ich die bedingte Übersetzung mit "Ifdef" und als "Symbol" "Say_Hello1 wähle, gibt er in der Konsole den Text hinter Warning (Say Hello ist nicht definiert) nicht aus, sondern nur den Text "Hello World". Wenn ich das ganze mit #error, anstatt mit #warning starte, gibt er immer noch die Fehlermeldung
Code:

Zitat
make -k all
g++ Hello.cpp -o Hello
Hello.cpp:11:10: #error Say_Hello ist nicht definert
make: *** [Hello] Error 1
make: Target `all' not remade because of errors.
aus. Bei Warning sagt er immer nur
Code:
Zitat
make -k all
g++ Hallo.cpp -o Hallo
Hallo.cpp:13:10: warning: #warning Say Hello ist nicht definiert\n
Hallo.cpp:18:2: warning: no newline at end of file
   
 
   
« Letzte Änderung: 14.04.07, 09:58:49 von Speedy_92 »

Die Dinger mit dem # davor sind Praeprozessordirektiven, die werden schon beim kompilieren ausgewertet (eigentlich sogar schon davor). Und wenn da mit #error ein Fehler geworfen wird, kompiliert er halt gar nicht. Mit #warning gibts entsprechend ne Warnung. Dein Code verhaelt sich also korrekt, Du erwartest nur das falsche Verhalten.

Wenn du im Programm nen Fehler haben moechtest musst du mit cout oder cerr o.ae. arbeiten.

#ifndef Say_Hello1
    cout << "Hello World" << endl;
#elif
    cerr << "Say_Hello ist nicht definert"  << endl;
#endif


« Visual Basic2005 ProblemJava doppelte zahlen in Arrays »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

| Mehr Themen zu "Error"
Fremdwörter? Erklärungen im Lexikon!
C++
C++ ist eine von der ISO standardisierte Programmiersprache und eine erweiterte Form von C zur objektorientierten, generischen und prozeduralen Programmierung. Weitestgeh...

Quellcode
Ein Quellcode, auch als Quelltext bekannt, bezeichnet einen unkompilierten Programm-Code einer Software. Der Quellcode ist meist in einer der verbreiteten Programmierspra...

Unicode
Ein Unicode ist ein "Einheitsschlüssel", der als internationaler Standard gilt. Unicode ist ein digitaler Zeichensatz zur Darstellung von weitestgehend jedem Schrift...