Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Textausgabe an Betriebssystem anpassen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
15.01.2016, 05:05 Uhr
Yadgar



Hi(gh)!

Bei meinem kommandozeilenbasierten Bildbearbeitungsprogram "yip" habe ich im Moment folgendes Problem:

In einer kleinen Konfigurationsdatei werden symbolische Präprozessor-Konstanten gesetzt:


C++:
#define DE
#define LINUX



davon abhängig dann in main() Konstantendefinitionen für deutsche Sonderzeichen:


C++:
#ifdef LINUX
  const unsigned char auml = 'ä';
  const unsigned char Auml = 'Ä';
  const unsigned char ouml = 'ö';
  const unsigned char Ouml = 'Ö';
  const unsigned char uuml = 'ü';
  const unsigned char Uuml = 'Ü';
  const unsigned char szlig = 'ß';
#endif
#ifdef WINDOWS
  const unsigned char auml = 132;
  const unsigned char Auml = 142;
  const unsigned char ouml = 148;
  const unsigned char Ouml = 153;
  const unsigned char uuml = 129;
  const unsigned char Uuml = 154;
  const unsigned char szlig = 225;
#endif



Hier ein Aufruf:

cout << "Dieser Befehl; listet alle verf" << uuml << "gbaren Befehle mit Kurzbeschreibungen auf." << endl // der Stream geht hier noch weiter

Für diese Zeile bekomme ich aber immer die Fehlermeldung "uuml not defined in this scope"! Warum? Liegt es daran, dass ich Konstanten definiert habe?

Bis bald im Khyberspace!

Yadgar
--
Flagmaker - ein Programmier-Blog
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
15.01.2016, 10:54 Uhr
Tommix



Hallo,
ich würde eher vermuten bei den #includes geht was durcheinander. An dem, was Du gepostet hast sehe ich erstmal nichts verdächtiges. Setze mal ein

C++:
#if !defined WINDOWS && !defined LINUX
#error Kein Betriebssystem definiert.
#endif


in Dein Programm.

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
15.01.2016, 12:54 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hi,

es gibt defines die immer existieren:

__linux__ (definiert der gcc)
_WIN32 (definieren alle windows compiler)

das dritte was ich noch kenne ist glaub ich __APPLE__ für macosx/ios
--
class God : public ChuckNorris { };

Dieser Post wurde am 15.01.2016 um 12:55 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
15.01.2016, 16:38 Uhr
Yadgar



Hi(gh)!


Zitat von FloSoft:

es gibt defines die immer existieren:

__linux__ (definiert der gcc)
_WIN32 (definieren alle windows compiler)

das dritte was ich noch kenne ist glaub ich __APPLE__ für macosx/ios


Ich habe die Konstanten jetzt so definiert:


C++:
#ifdef __linux__
  const string auml = "ä";
  const string Auml = "Ä";
  const string ouml = "ö";
  const string Ouml = "Ö";
  const string uuml = "ü";
  const string Uuml = "Ü";
  const string szlig = "ß";
#else // mit Apple kenne ich mich nicht aus, daher ist bis auf weiteres keine Apple-Version geplant
  const unsigned char auml = 132;
  const unsigned char Auml = 142;
  const unsigned char ouml = 148;
  const unsigned char Ouml = 153;
  const unsigned char uuml = 129;
  const unsigned char Uuml = 154;
  const unsigned char szlig = 225;
#endif



Die Definition der Konstanten für Linux als string war nötig, da die deutschen Sonderzeichen in Linux (nicht in Windows!) wide characters sind und char damit nicht klar kommt. Außerdem habe ich die Konstanten jetzt global definiert, damit sie auch meinen Funktionen bekannt sind!

Und es funktioniert, unter Linux wie unter Windows! Danke für den Tipp mit der symbolischen Umgebungskonstante __linux__!

Bis bald im Khyberspace!

Yadgar
--
Flagmaker - ein Programmier-Blog
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: