HA!
Ich glaube, ich hab' noch was gefunden! (Zu deinem zweiten Beispiel!)
Es gibt die Funktion 'gets', der du den Puffer übergeben kannst. Sie fordert den Benutzer dann auf, einen String einlesen zu lassen. Also wie 'cin'. Jedoch kann auch sie gegen Bereichsüberschreitung nichts tun. DOCH ES GIBT NOCH EINE FUNKTION, nämliche 'fgets', sie ist das gleiche, nur noch ein wenig allgemeiner! Sie liest den Input aus einem FILE-Stream (FILE *), in deinem Fall einfach 'stdin'. Der Vorteil ist aber, dass du eingeben kannst, wie viel gelesen werden soll (mit der terminierenden NULL!). In deinem Beislpiel also:
|
Quellcode
|
1
2
3
4
|
...
char buffer[64];
fgets(buffer,64,stdin);
...
|
und egal, was der Benutzer eingegeben hat, es werden nur die ersten 63 Zeichen (das 64. ist die 0) übernommen, der Rest wird abgeschnitten, und zwar OHNE dass das Programm abstürzt! :-D
Probiers mal aus!
Ich hoffe, ich konnte dir helfen...
mfg,
Till