Wie gebe ich in eine Zeichenkete ein Leerzeichen ein?
-
Lies dir mal die Doku zu printf durch! Du gibst im Formatstring an, dass ein float ausgegeben werden soll. Ein Zeichen gibt man mit %c aus. Übrigens hast du die bisherigen Hinweise nur teilweise umgesetzt (du hast immer noch kein 7*7 Spielfeld), also lies dir besser die geposteten Antworten noch mal ganz genau durch...
-
Gerade die interessante Stelle wird von der Konsole verdeckt.
Die Formatierungszeichen %0lf sind schonmal fehl am Platz.
-
Deine Einrückung ist auch grauenhaft (sorry
), daher hier ein wenig Lektüre:
-
Sorry, wenn ich mit den Sachen nicht so zu Recht komme, viele Dinge sagen mir nichts. Ich will mir nicht die Rosinen rauspicken. Bei manchen Tipps hier zeigt mein Programm mir von vornerein Errormeldungen an, weil ich nicht weiß, was ich zusätzlich abändern muss. Deshalb die mehr oder weniger "einfache" Selektion. ZB was genau ist der Formatstring? Muss ma eure Tipss erst mal austesten
-
Ein Formatstring formatiert die Ein/Ausgabe und ist eher ein Sprachmittel von C, in C++ brauchst du den nicht:
enum {zeilen=7, spalten = 7}; char feld[zeilen][spalten]; void kuggi() { for ( int i = 0; i < zeilen; i++ ) { for ( int j = 0; j < spalten; j++ ) cout << feld[i][j]; cout << endl; } } int main( ) { memset ( feld, ' ', zeilen * spalten * sizeof(feld[0])); kuggi(); return 0; }
-
enum & memset fan schrieb:
Ein Formatstring formatiert die Ein/Ausgabe und ist eher ein Sprachmittel von C, in C++ brauchst du den nicht:
Es gibt aber auch für C++-Prpgrammierer u.U. Momente, in denen man mit Formatstrings arbeiten muss (Beispiel CString::Format der MFC). Insofern finde ich schon, dass man ihm das kurz erklären kann, so dass sein Programm läuft. Alles umwerfen und ihm quasi ein komplett anderes Programm vorkauen geht natürlich auch (und deine Version ist sinniger als seine), aber ich fänd' es auch gut, wenn er seine bisher gemachten Fehler versteht und behebt.
Mit Formatstring meinen wir den String (Zeichenkette), den du als erstes Argument an printf übergibst. Du platzierst dort neben festem Text auch Platzhalter, die dann den Inhalt von Variablen (dir du im Anschluss übergibst) darstellen. Du hast dort %f notiert, was für eine Fließkommazahl steht. Wenn du ein char ausgeben willst, musst du halt %c nehmen.
Beispiel:
char c='A'; int i=65; float f=0.123; printf("Der Buchstabe %c hat im ASCII-Code den Wert %d und nicht %f!",c,i,f);
(probier's einfach mal aus)
Doku zu printf:
http://msdn.microsoft.com/en-us/library/wc7014hz(VS.71).aspx
-
_matze schrieb:
Du hast dort %f notiert, was für eine Fließkommazahl steht. Wenn du ein char ausgeben willst, musst du halt %c nehmen.
Ich hab DEN Satz gelesen, das Programm abgeändert, und es geht
Ich hau mich weg
Hier das Bild, jetz kann ich weiter machen
Bild Hosted bei ImagesUp.de
Ich dank euch vielmals, vor allem wegen der Uhrzeit
-
Schön, dass du weiter kommst. Denk aber bitte daran, die restlichen Tipps nicht komplett zu ignorieren, ja?
-
Ja, jetzt dämmerts mir. Am Anfang war die Zeichenkette ein float, deshalb %f als String (richtig, dass das ein String ist?). Später hab ich ihn hier auf Raten von euch auf einen char abgeändert, und den String %f nicht abgeändert. Der eine Satz wars. Danke, jetz hats sogar der letzte gerafft
-
Zehplusplus schrieb:
Hier das Bild, jetz kann ich weiter machen
Bild Hosted bei ImagesUp.deWenn Du jetzt noch statt A-G lieber 1-7 verwendest, benutzt Du sogar die übliche Notation.
-
Und nimm doch statt 'I' lieber '|'.
-
_matze schrieb:
Und nimm doch statt 'I' lieber '|'.
Ok aber wie? welches Zeichen ist das, das kleine L? Oder is das das Zeichen vom logischen ODER? Finde es bei mir nicht, wo ist das? Hab nen Laptop, vlt liegts daran...
-
Zehplusplus schrieb:
Zeichen vom logischen ODER?
jepp.
Alt Gr + <
-
jepp (0r) schrieb:
Zehplusplus schrieb:
Zeichen vom logischen ODER?
jepp.
Alt Gr + <Ich möchte daran erinnern, dass es unterschiedliche Tastaturlayouts gibt. Auf einem schweizerischem wäre es zum Beispiel <Alt Gr> + <7>
@Zehplusplus,
Du weisst nicht, wo das logische Oder auf deiner Tastatur ist? Wie programmierst du damit überhaupt?Grüssli
-
Dravere schrieb:
@Zehplusplus,
Du weisst nicht, wo das logische Oder auf deiner Tastatur ist? Wie programmierst du damit überhaupt?if(zug<1 or zug>7) //früher nahm ich || cout<<"Ungueltiger Zug!\n";
-
Dravere schrieb:
jepp (0r) schrieb:
Zehplusplus schrieb:
Zeichen vom logischen ODER?
jepp.
Alt Gr + <Ich möchte daran erinnern, dass es unterschiedliche Tastaturlayouts gibt. Auf einem schweizerischem wäre es zum Beispiel <Alt Gr> + <7>
@Zehplusplus,
Du weisst nicht, wo das logische Oder auf deiner Tastatur ist? Wie programmierst du damit überhaupt?Grüssli
Zu Hause (also am Laptop) hab ichs noch nie gebraucht. Jetzt (Slt Gr + <) dämmerts mir auch wieder. Bin noch in der Lernphase, nicht in der GElerntphase. Ok Programm schaut viel besser aus. Sobald ich das nächste Problem habe, verspreche ich euch auch, es wird etwas Niveau haben
-
volkard schrieb:
if(zug<1 or zug>7) //früher nahm ich || cout<<"Ungueltiger Zug!\n";
Viel Spass beim MSVC damit
Und wenn du ein bitwise or brauchst? Und komm mir jetzt nicht mit dertrigraph sequence
, dass kann man ja nicht ernst nehmen!Grüssli
-
Dravere schrieb:
Viel Spass beim MSVC damit
Dann mach ich schnell
#include "msvc-bugfix"
oder ich kopiere mir ein | aus dem forum hier.
Und wenn du ein bitwise or brauchst?
da hoffe ich mal, daß es ein schlüsselwort bitwise_or gibt. aber diese lektion hatte ich noch nicht und ich glaube auch nicht, daß sowas in dem spiel vorkommen wird.
-
Dravere schrieb:
Ich möchte daran erinnern, dass es unterschiedliche Tastaturlayouts gibt. Auf einem schweizerischem wäre es zum Beispiel <Alt Gr> + <7>
Super! Und wie ist das bei den Chinesen?