Anfängerecke
-
Ich bin noch völlig am Anfang und dann auch noch Fernstudent.
Ich hoffe ihr könnt mir bei dem einen oder anderen Punkt auf die Sprünge helfen.Wie zum Bsp. bei diesem:
Muß ich bei Operatoren, Sequenzen, Methoden auf Freizeichen achten?
#include<iostream>
Using namespace std;
int main()
{
cout<<"\"HelloWorld\""<<endl;
}Die Zeile, in der die Operatoren das "Hello World" in die Ausgabe schieben muss ich da auf Leerzeichen zwischen dem cout und den << Operatoren sowie den folgenden Sequenzen achten oder ist das egal?
-
Es ist egal, aber << muss << bleiben. Das gleiche gilt auch für alle anderen Operatoren und innerhalb von Namen (Variable, Funktion) darfst du keine Leerzeichen haben, aber zwischen verschiedenen Bezeichnern kannst du beliebig viele Lücken haben.
EDIT: Mit
cout<<""HelloWorld""<<endl;meinst du wohl
cout<<"HelloWorld"<<endl;und statt endl sollte man meistens "\n" nehmen.
-
Danke. Bei der Hello World - Ausgabe hatte es scheinbar die Sequenzen nicht mit reinkopiert.
Es ging darum: "Hello World"
auszugeben. (Also in Anführungsstrichen.)
-
Kommt drauf an Marthog, bei Logging Ausgaben würde ich immer endl nehmen, weil es den Stream flusht.
Aber back2topic:
Jegliche Whitespaces sind egal, ob du 3 Leerzeichen oder 20 freie Zeilen irgendwo hast juckt keinen (ausser dem menschlichen Leser ;))Bei Präprozessorkommandos sieht es allerdings anders aus.
#define #if #include #else // Kommentar #endif #else if int main(int argc, char *argv[]);Du siehst hier schon durch die Forensoftware, dass das andere Farben sind. Und jedes Kommando erstreckt sich auf eine ganze Zeile (Kommentare ausgenommen).
Edit: Und wie du spezielle Zeichen in Strings darstellt kommt auch bald in deinem Lehrbuch ;).
"\"Hallo Welt\" mit \a und \t und\n dann nochmal \r und weiter gehts.\\"
-
Marthog schrieb:
und statt endl sollte man meistens
"\n"nehmen.'\n'
-
Man darf zwischen sog. Token Leerzeichen lassen.
There are five kinds of tokens: identifiers, keywords, literals, operators [and punctuators], and other separators. Blanks, horizontal and vertical tabs, newlines, formfeeds, and comments (collectively, “white space”), as described below, are ignored except as they serve to separate tokens.
[ Note: Some white space is required to separate otherwise adjacent identifiers, keywords, numeric literals, and alternative tokens containing alphabetic characters. —end note ]
-
bei Logging Ausgaben würde ich immer endl nehmen, weil es den Stream flusht.
Dafür gibt es das
unitbuf-Flag.
-
Skym0sh0 schrieb:
Kommt drauf an Marthog, bei Logging Ausgaben würde ich immer endl nehmen, weil es den Stream flusht.
Würd ich nicht. Ich würd wohl das nehmen:
ofstream log; log.setbuf(0,0); log.open("log.txt");
-
Okay. unitbuf. Man ist immer noch alles so neu für mich

-
Sone schrieb:
bei Logging Ausgaben würde ich immer endl nehmen, weil es den Stream flusht.
Dafür gibt es das
unitbuf-Flag.Das ist wieder zu langsam. Typische Loggingzeile:
clog << "Debug-Wert: " << x << '\n'; // 3 flushs (unitbuf) clog << "Debug-Wert: " << x << endl; // 1 flush (kein unitbuf)Macht alles 3x so langsam. Ich will doch keine Zeit verbraten. Ich will line-buffering. Geht nicht mit iostreams. Also nehm ich endl.
-
Es geht um die Escape-Sequenzen.
Die doppelten Anführungsstriche "" sind ja zur Eingrenzung
von Zeichenketten da.
Wozu nutzt man denn ' ?
-
' ist für einzelne Buchstaben
"" ist für mehrere BuchstabenDer Unterschied ist, dass 'c' z.B. ein normaler Wert (vom Typ char) ist, der auch als Zahl ausgedrückt werden kann.
"hello" ist ein array aus Buchstaben.
-
Skym0sh0 schrieb:
Präprozessorkommandos
#else if#elif
-
int main() {
int x = 10;
bool a =(x >= 10);
bool b = (x < 5);
cout << boolaplha << a<< endl;
cout << b <<endl;Gegeben war aufgelisteter Codeschnipsel. Er ist nicht vollständig nur ein Schnipsel.
Mir geht es um die Ausgabe von a.
boolalpha ist ja dafür da, dass man bool-Variablen nicht nummerisch sondern
textlich ausgeben kann.
a wäre hier in dem fall ja 1 oder auch wahr.
wird in dem fall dann "eins" ausgegeben oder "wahr" also in textfor beides.
b würde dann ja auch textlich ausgegeben werden als "null" oder als "false"?
-
Limonade schrieb:
a wäre hier in dem fall ja 1 oder auch wahr.
wird in dem fall dann "eins" ausgegeben oder "wahr" also in textfor beides.
b würde dann ja auch textlich ausgegeben werden als "null" oder als "false"?a wird - weil die Standardlocale eingestellt ist - als true ausgegeben, b als false.