Unterschied zwischen " und '
-
ja...
ich bin immer noch Anfänger und stelle immer noch noob-Fragen, aber ich will nicht dumm sterben
Ich habe mir da mal was ganz kleines gecodet:#include <iostream> #include <conio> //#include <cmath> #include <iomanip> using namespace std; int main() { short abc; double x = 125.65329; cout << "gibescht mir ne zahl an: "; if (cin >> abc){ cout << hex << "die zahl hat den wert:\t" << abc << endl; cout << oct << "die zahl hat den wert:\t" << abc << endl; cout << dec << showpos << "die zahl hat den wert:\t" << abc;} else { cout << "wtf! ich will ne zahl!\n"; //cout.precision(6); cout << setw(10) << setfill('*') << setprecision(6); cout << x; } getch(); return 0; }
und jetzt möchte ich den Unterschied zwischen den Zeichen " und ' wissen...
denn wenn ich hiersetfill('*')
das da schreibe
setfill("*")
schimpft der Compiler gewaltig und will irgendwas in der <iomanip> ändern.
Kann mir jemand auf die Sprünge helfen?
mfg titeuf
-
"" beinhaltet ganze Zeichenketten, dabei wird automatisch ein \0 hinten dran gesetzt, da Char-Arrays nämlich nichts Anderes als Zeiger auf das erste Element der Zeichenkette sind und daher ein Stoppzeichen eingeführt werden musste. \0 ist halt dieses Stoppzeichen.
'' schließt einfach nur ein einzelnes Zeichen ein.
MfG Eisflamme
-
Ich klugscheiße dann mal rum und sage zusätzlich, dass "" vom Typ char* und '' vom Typ char ist. Hat Eisflamme im Grunde schon erwähnt. Aber ich klugscheiße gerne
-
[korrigiert]
-
DennisB schrieb:
Ich klugscheiße dann mal rum und sage zusätzlich, dass "" vom Typ char* und '' vom Typ char ist.
Beim Klugscheißen sollte man allerdings auf die Korrektheit achten. Ein Stringliteral der Form "bla" ist nicht vom Typ char* sondern vom Typ "Array von n const char" wobei n die Zahl der Zeichen des Stringliterals + 1 für das terminierende Nullzeichen ist (ungenauigkeit intendiert). Ein Array von n const char decayed gerne in ein const char* und aus Gründen der C-kompatibilität erlaubt C++ eine implizite Konvertierung von const char* nach char*.
Ein Character-Literal hat nur dann den Typ char, wenn es sich bei dem Literal um ein einzelnes Zeichen handelt. Ein Multicharacter-Literal hingegen hat den Typ int.