Abfangen von zu langen Strings bei Eingaben von Tastatur/C++

Das Forum fĂĽr Programmierer und Systemadmins. Von Shell-, Perl- und PHP-Scripts bis zur objektorientierten Programmierung mit C++.

Abfangen von zu langen Strings bei Eingaben von Tastatur/C++

Beitragvon Dissy » Mo 30 Mai, 2005 18:51

Hallo,

ich stehe im Moment etwas auf dem Schlauch. Ich will folgendes machen:

String von Tastatur einlesen(ĂĽber cin>>eingabe) der max 25 Zeichen langsein darf, also ein char-Feld eingabe[25].

Wie fange ich nun ab, das man keine längeren Strings eingeben kann bzw. der String nach der 25. Stelle gekappt wird oder man eine Fehlermeldung ausgibt das die Eingabe zu lang gewesen sei.
Am liebsten wäre mir eine Fehlermeldung und das Abkappen oder erneute Eingabe.

Ich bedanke mich jetzt schon mal fĂĽr eure Hilfe! ;)

Liebe GrĂĽĂźe
Dissy
Neu im Board
Neu im Board
 
Beiträge: 1
Registriert: Mo 30 Mai, 2005 18:41
Wohnort: Mitte von Deutschland

Beitragvon dfx » Di 31 Mai, 2005 07:50

wenn du schon c++ nehmen willst/muĂźt, wĂĽrd ich einfach ne entsprechende string klasse nehmen...
xDSL unlimited 2.320 kbit/s
Bild
Bild
dfx
Board-User Level 3
Board-User Level 3
 
Beiträge: 1368
Registriert: Do 15 Jan, 2004 19:22
Wohnort: graz

Re: Abfangen von zu langen Strings bei Eingaben von Tastatur

Beitragvon ulrich » Di 31 Mai, 2005 08:16

Dissy hat geschrieben:Hallo,

ich stehe im Moment etwas auf dem Schlauch. Ich will folgendes machen:

String von Tastatur einlesen(ĂĽber cin>>eingabe) der max 25 Zeichen langsein darf, also ein char-Feld eingabe[25].

Wie fange ich nun ab, das man keine längeren Strings eingeben kann bzw. der String nach der 25. Stelle gekappt wird oder man eine Fehlermeldung ausgibt das die Eingabe zu lang gewesen sei.
Am liebsten wäre mir eine Fehlermeldung und das Abkappen oder erneute Eingabe.

Ich bedanke mich jetzt schon mal fĂĽr eure Hilfe! ;)

Liebe GrĂĽĂźe

Code: Alles auswählen
#include <string>
#include <iostream>
using namespace std;

//...
const int MAX_LEN = 25;
string eingabe;

//kĂĽrzen
cin>>eingabe;
if(eingabe.length() > MAX_LEN)
{
eingabe = eingabe.substr(0, MAX_LEN);   
}
//oder
//fehlermeldung und neue eingabe
do
{
cin>>eingabe;
if(eingabe.length() <= MAX_LEN)
  {
  break;
  }
else
  {
  cout<<"Eingbabe zu lang (max. "<<MAX_LEN<<" Zeichen)"<<endl;
  }
}
while(true);
ulrich
Senior Board-Mitglied
Senior Board-Mitglied
 
Beiträge: 287
Registriert: Do 13 Nov, 2003 14:27


ZurĂĽck zu PROGRAMMIER FORUM

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste