Umlaute deaktivieren/austauschen?
-
%i --> Int
%c --> char
%d --> Ganzzahlige dateitypen
%f --> Float
%lf --> Double#include <stdiio.h> void main() { int a = 1; char b= "Hallo"; float c = 1.5; double d= 1.33; int i = 132; printf("int: %i\n char: %c\n float: %f\n double: %lf\n",a,b,c,d); printf("Wir haben sch%cnes wetter heute",i); }
-
Folgende Meldung kommt:
zeiger.cpp:12: error: invalid conversion from `const char*' to `char'
-
Das gehört so:
char c = 'x'; // nur x, ein zeichen const char* str = "Hallo"; // zeichenkette // dann auch noch die richtige ausgabe für ein zeichen: printf("%c", c); // ...und für eine zeichenkette (string) printf("%s", str); // bzw. puts(str);
Zu der Umlautproblematik an sich siehe FAQ!
MfG SideWinder
-
SideWinder schrieb:
Das gehört so:
char c = 'x'; // nur x, ein zeichen const char* str = "Hallo"; // zeichenkette // dann auch noch die richtige ausgabe für ein zeichen: printf("%c", c); // ...und für eine zeichenkette (string) printf("%s", str); // bzw. puts(str);
Zu der Umlautproblematik an sich siehe FAQ!
MfG SideWinder
Also das Problem ist nur,dass ich das was in der Konsole steht,nicht entziffern kann,wenn ich im char ein 'Ä' definieren
Da sind wieder nur solchen anderen Zeichen.Gibt es nun eine Möglichkeit/Methode ein Umlaut so darzustellen,dass man es auch in der Konsole richtig sieht und nicht solche anderen ASCII Zeichen?
-
SideWinder schrieb:
Zu der Umlautproblematik an sich siehe FAQ!
MfG SideWinder
-
SideWinder schrieb:
SideWinder schrieb:
Zu der Umlautproblematik an sich siehe FAQ!
MfG SideWinder
Also ich habe es gerade gelesen.Besonder das hier hat mir sehr gut gefallen und ich würde gerne eine Erklärung haben,warum ...
const unsigned char AE = static_cast<unsigned char>(142); cout<<AE<<"LOL";
.. so const,unsigned und dieses static_cast<unsigned char>(142) vorkommt
-)Also const ist Konstant,das weiss ich schon,aber man muss ja nicht const nehmen oder?
-)unsigned... hmm.. sehr schweres Wort und damit kann man bestimmt auch nichts anfangen oder etwa doch?
-)Wozu dieses static_cast<unsigned char>(142) gut ist weiss ich ja auch nicht.
Was bedeutet ... static_cast
Was bedeutet ... <unsigned char>
Was bedeutet ... (142).. von diesem Beispiel?
Bob
-
SideWinder
Der junge ist genauso anfänger wie ich.
und wenn wir das erstmal so haben das es geht is es gut.
Wir müssen es dann n icht direkt so kompliziert haben das wir nicht weiter kommen, und die lust verlieren.ps: puts und gets kommt in meinem buck fast ganz am ende.
Ich finde meine methode einfacher.
Und deine gibt umlaute trotzdem falsch aus...
was %s und %d angeht. das is ja so wie so nochmal was anderes.
%i und %c sind ja typ abhängig.
%d liest alles ganzzahlige aus.und %c können wir verwenden. wir haben ja nur ein zeichen.
und selbst wenn mir mehr zeichen hätten können wir mit %c das erste zeichen der zeichenkette in der variable auslesen...
-
132 = ascii code für ö
142 = ascii code für ä
7 = ascii code für ein pipsen.unsigned heist ohne vorzeichen.
signed char geht von -128 bis 127 der zaheln.
das leigt daran das ein char 8 bit auf der festplatte reserviert.
das erste bit ist das sogenannte voreichen bit.
ist es 0 ergeben die folgenden 7 zahlen eine positive zahl.
ist das vorzeichen bit 1 so ergeben die nachfolgenden 7 zahlen eine negative zahl.
Doch mann muss damit aufpassen.
Wenn man mit den zahlen rechnet muss man sich bewust sein das die negative zahl mit dem vorzeichen bit 1 ein Zweier-kompliment ist.
Will man die wirkliche zahl haben so muss man das zweier-kompliemnet bilden und danach das einser-kompliment. nun kann man die zahl aumrechnen.Bei Unsigned char stehen der zahl volle 8 bit zur verfügung.
das heist es gibt kein voreichen und somit nur positive zahlen.
Das ist in dem oben bsp wichtig denn ein normaler char würde aus 142 -113 mahen und etwas falsches ausgeben.
da es unsigned char ist geht der bereich aber von 0-255 und kann damit alle zahlen des ascii-codes enthalten.cout gefällt mir auch besser.
Wie man sieht kann man damit aber nicht so einfach character auslesen.
Denn das fehlt dem objekt.
cin>>a;
so kann man z.b. eine eingabe fordern.
getch geht aber auch.
Das problem sind die richtigen header die wir anfänger meisten nicht kennen.
Und wenn nötig auch noch den namensraum öfnen.cout wäre in <iostream> enthalten.
hier brauchen wir einen namensraum.also using namespace std;
nehmen wir <conio.h> brauchen nir den namespace nicht. dafür habe das h.
nutzen wir <iostream.h> brauchen wir den namespace auch nicht.
in der stdafx wäre aber auch scanf() enthalten.
Also man sieht es gibt 100.000 wege.
Wir anfänger sollten den leichtesten wählen.
Wenn wir damit zurecht kommen können wir immernoch auf schwere sachen umsteigen...
-
Ich hab ma iergednwo gesewhen dass das ganze auch viel einfacher geht in dem man die definiert aber wie genau das geht weiss ich leider nicht mehr
-
Sqwan schrieb:
printf() ist keine funktion sondern ein befehl der sprache c.
C kennt keine Befehle.
Deshalb ist printf() auch kein Befehl sondern eine Funktion!mfg tobZel
PS: Man könnte vllt. noch ein paar Schlüsselwörter als Befehle sehen.
-
Wenn wir jetzt mal klugscheissen dürfen ist printf weder ein befehl, noch eine funktion, sondern eine Prozedur, da printf keinen Rückgabewert hat.
-
[cpp]int printf(const char * restrict format, ...);[/cpp]