Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
C++ Wie diesen char '\n' nutzen?
- Ersteller AirForce
- Erstellt am
か
かわいい
Gast
schreib (verständliches) Deutsch, eventuell versteht dann jemand dein Anliegen 
btw. \n ist der Zeilenumbruch
btw. \n ist der Zeilenumbruch
Also noch einmal. Ich möchte das wenn das Programm arbeitet und folgende Zeichen eingebe \n das es erkennt wird und die Ausgabe angezeigt wird. Aber wie soll ich \n definieren wenn man in char nur einen Charakter schreiben kann.
T
toxn
Gast
\n sind nunmal 2 Char. Kommt drauf an wie du die Eingabe auswertest. Dann brauchst du eben einen Buffer der mindestens 2 Char speichern kann. Dann musst du beide einzeln auswerten. Oder mit string compare. Kommt eben darauf an wie und womit du programmierst
bu1137
Captain
- Registriert
- Apr. 2010
- Beiträge
- 3.249
Versteh immernoch kein Wort. Aber char x = '\n'; geht. Ich versteh dein Problem nicht.
Nur um das klarzustellen: '\n' ist das ASCII Zeichen mit dem Wert 0x0A (dez. 10). Wenn du in einer Textbox den String "\n" eingibst, dann sind es zwei Zeichen, '\\' und 'n'.
Nur um das klarzustellen: '\n' ist das ASCII Zeichen mit dem Wert 0x0A (dez. 10). Wenn du in einer Textbox den String "\n" eingibst, dann sind es zwei Zeichen, '\\' und 'n'.
Zuletzt bearbeitet:
T
toxn
Gast
Wenn du das via stdin einliest dann ist es kein NewLine sondern es sind 2 Zeichen. Deswegen kannst du darauf nicht testen. Obwohl ich mich frage ob du das wirklich so machen willst. Bitte gib dir doch mal Muehe und schreib 2-3 Zeilen mehr was genau du machst.
Gehen wir davon aus, dass du bereits das Char-Array der Eingabe hast:
char NeueZeile = ' ';
int counter = 0;
while(NeueZeile != '\n')
{
//Anweisungen nach Wunsch
if(Eingabe[counter] == '\\' && Eingabe[counter+1] == 'n')
{
//Anweisungen nach Wunsch
NeueZeile = '\n';
}
counter++;
}
char NeueZeile = ' ';
int counter = 0;
while(NeueZeile != '\n')
{
//Anweisungen nach Wunsch
if(Eingabe[counter] == '\\' && Eingabe[counter+1] == 'n')
{
//Anweisungen nach Wunsch
NeueZeile = '\n';
}
counter++;
}
Ich lerne auf Eigen Faust C++. Und wenn ich nicht weiter weiß dann frage ich hier im Forum mal nach, und das hat nichts mit Hausaufgaben zu tun. Und ich arbeite an einem Taschenrechner Programm. Und als Übung muss man folgendes machen, ich schreibe mal den Text rein:
Modifizieren Sie Token_stream::get() so, dass die Memberfunktion ein Token(print) zurückliefert, wenn es ein Zeilenumbruchzeichen sieht. Das setzt voraus, dass Sie nach Whitespace-Zeichen Ausschau halten und Zeilenumbruchzeichen ('\n') gesondert behandeln. Dabei könnte Ihnen die Funktion isspace(ch) aus der Standardbibliothek nützlich sein, die true zurückliefert, wenn ch ein Whitespace ist.
Modifizieren Sie Token_stream::get() so, dass die Memberfunktion ein Token(print) zurückliefert, wenn es ein Zeilenumbruchzeichen sieht. Das setzt voraus, dass Sie nach Whitespace-Zeichen Ausschau halten und Zeilenumbruchzeichen ('\n') gesondert behandeln. Dabei könnte Ihnen die Funktion isspace(ch) aus der Standardbibliothek nützlich sein, die true zurückliefert, wenn ch ein Whitespace ist.
godofkills
Lt. Commander
- Registriert
- Dez. 2009
- Beiträge
- 1.997
Man sollte vielleicht die Interpunktion lernen, also für den Anfang. So versteht man doch nichts.
T
toxn
Gast
Na steht doch schon alles da. Einfach mit isspace(myChar) testen ob true zurueck geliefert wird. Ich denke du scheiterst eher daran, dass du davon aussgehst das man in der Konsole wirklich die 2 Zeichen \ und n eingeben muss. Ich geh einfach mal davon aus, dass es ein Consolenprogramm ist.
Edit: Hehe Bist du auch im im C++ Forum aktiv : http://www.c-plusplus.de/forum/p1989234
Edit: Hehe Bist du auch im im C++ Forum aktiv : http://www.c-plusplus.de/forum/p1989234
Zuletzt bearbeitet:
Genau das ist es. Und ein anderes Problem ich habe den Text nicht richtig verstanden. Doch dank der Erklärung verstehe ich was gemeint ist. Dann muss man nicht zwei Zeichen eingeben wie ich es vermutet hatte sondern nur mit isspace testen. Ja in beiden Forum.
T
toxn
Gast
Also scheinbar hast du mitten im Buch angefnagen zu lesen. Du musst erst nochmal erfassen was \n wirklich ist. Das steht wirklich nur fuer Zeilenumbruch bzw wie schon oben beschrieben fuer den dezimalen Wert 10 in der ASCII Tabelle. Und isspace(myChar) macht dann auch nichst anderes als if(myChar == '\n') return true;
Nur noch fuer diverse andere Whitespaces.
EDIT:
Wenn du jetzt einfach Enter drueckst dann hast du dein NewLine sozusagen erzeugt.
Nur noch fuer diverse andere Whitespaces.
EDIT:
Code:
char c;
cout << " Gib was ein : ";
c = cin.get();
if(c == '\n')
cout << "Ja, ist Whitespace" << endl;
if(isspace(c))
cout << "Ja ebenfalls, ist Whitespace" << endl;
Wenn du jetzt einfach Enter drueckst dann hast du dein NewLine sozusagen erzeugt.
Zuletzt bearbeitet:
W
Whiz-zarD
Gast
Ähnliche Themen
- Antworten
- 45
- Aufrufe
- 3.363
- Antworten
- 10
- Aufrufe
- 1.078