title image


Smiley Re: gleich gehts weiter....
>>das dieses nullbyte am ende einer zeichenkette steht

Das ist im Allgemeinen korrekt.



>>und automatisch eingefuegt wird, und das auch bei der deklaration nich darauf geachtet werden muss...

Die Deklaration einer Variable ist etwas anderes als das Einlesen einer Zeichenfolge.



char bla[] = "x";

entspricht

char bla[2] = { 'x', '\0' }; // NUL wird automatisch am Ende eingefügt

Ein einfaches char bla[2]; hingegen lässt den Inhalt von bla vollkommen undefiniert - kein NUL am Ende.



Beim Einlesen muss man selber darauf achten:

#include

#include

int main () {

using namespace std;

char bla[2];

cin >> setw(2) // damit nicht über das Ende von der Variable geschrieben wird

>> bla;

// oder:

cin.get(bla, 2);

return 0;

}

Beide Varianten lesen jeweils nur ein Zeichen.
Dieser Beitrag ist gratis und vom Umtausch ausgeschlossen.

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: