C++ Wie diesen char '\n' nutzen?

AirForce

Lt. Junior Grade
Registriert
Okt. 2010
Beiträge
296
Wie kann ich es dem Program beibringen wenn es folgende Zeichen \n seit das sofort die Werte ausgegeben werden? Aber als char definieren geht das? const char a = '\\' damit es \ akzeptiert oder const char a = '\\n'
 
schreib (verständliches) Deutsch, eventuell versteht dann jemand dein Anliegen ;)

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.
 
\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
 
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'.
 
Zuletzt bearbeitet:
Genau das will ich char x = '\n';, aber irgendwie Funktioniert das nicht.
Aber wie könnte man dann diese zwei Zeichen zusammenfügen damit aus '\\' und 'n' ein '\n' wird?
 
Zuletzt bearbeitet:
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.
 
ich kann kein c++, aber versuch doch mal

if(inputbuffer.read("DEINZEICHEN")) print(irgendwas)
 
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++;
}
 
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.
 
Man sollte vielleicht die Interpunktion lernen, also für den Anfang. So versteht man doch nichts.
 
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 :D
 
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.
 
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:

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:
Zurück
Oben