C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Parser f374r Vektorenn ^

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German)
View previous topic :: View next topic  
Author Message
Felix Brossmann
Guest





PostPosted: Thu Dec 04, 2003 9:39 pm    Post subject: Parser f374r Vektorenn ^ Reply with quote



Hallo,

ich möchte einen Vektor mit Zahlen füllen, die in der Kommandozeile
eingegeben werden sollen.Dabei meine ich nicht den STL-vector, sondern eine
eigene Klasse.
Die Eingabe soll in der Form "1 45 432 3 -5.87" sein, also dass die
einzelnen Elemente durch Leerzeichen getrennt sind. Wie kann ich nun die
einzelnen Zahlen in ein Array packen?

Das Ganze soll während des Programmes (mehrfach) stattfinden, also ist die
Möglichkeit, dies über argc /argv bei Programmstart zu machen, nicht
gegeben.

Ich habe schon selbst geschafft, die Eingabe in ein char* zu lesen (inkl.
Leerzeichen) und die Anzahl der Elemente zu zählen, aber das Trennen schaffe
ich nicht.

Kann mir da jemand helfen?

viele Grüße
Felix

PS: Konzeptionell sind mir leider keine Freiheiten gelassen, also die
Elemente *müssen* in ein Array, und das soll auch noch unter UNIX laufen.

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Christoph Rabel
Guest





PostPosted: Thu Dec 04, 2003 11:08 pm    Post subject: Re: Parser für Vektoren Reply with quote



Felix Brossmann wrote:
Quote:
ich möchte einen Vektor mit Zahlen füllen, die in der Kommandozeile
eingegeben werden sollen.Dabei meine ich nicht den STL-vector, sondern eine
eigene Klasse.
Die Eingabe soll in der Form "1 45 432 3 -5.87" sein, also dass die
einzelnen Elemente durch Leerzeichen getrennt sind. Wie kann ich nun die
einzelnen Zahlen in ein Array packen?

Das Ganze soll während des Programmes (mehrfach) stattfinden, also ist die
Möglichkeit, dies über argc /argv bei Programmstart zu machen, nicht
gegeben.

Ich habe schon selbst geschafft, die Eingabe in ein char* zu lesen (inkl.
Leerzeichen) und die Anzahl der Elemente zu zählen, aber das Trennen schaffe
ich nicht.

Da du keinen Code bereitgestellt hast, hier mal ein kurzes
Beispiel das eventuell deinen Anforderungen entspricht:

#include <iostream>
#include <sstream>

using std::stringstream;
using std::cout;
using std::endl;

int main()
{
const char * numbers = "1 45 432 3 -5.87";
int number;

stringstream stream(numbers);

while (stream >> number)
{
// Gib Number in Array, aber im Beispiel gib sie auf der
// Konsole aus
cout << number << " ";
}
cout << endl;
return(0);
}

Ist ungefähr eine von 100 Möglichkeiten dein Problem zu lösen...

mfg

Christoph

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Tibor Pausz
Guest





PostPosted: Fri Dec 05, 2003 12:05 pm    Post subject: Re: Parser für Vektoren Reply with quote



Felix Brossmann <febro (AT) gmx (DOT) net> wrote:

Quote:
Ich habe schon selbst geschafft, die Eingabe in ein char* zu lesen (inkl.
Leerzeichen) und die Anzahl der Elemente zu zählen, aber das Trennen schaffe
ich nicht.

Schau Dir dich bei <http://www.boost.org/> um, es gibt eine Regex, eine
Tokenizer und eine Parser Library (spirit). Mit diesen sollte sich das
Problem relativ einfach lösen lassen.

Wenn die Eingabe nur getrennt werden soll, reicht die Tokenizer Lib aus.

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
André Pönitz
Guest





PostPosted: Fri Dec 05, 2003 12:14 pm    Post subject: Re: Parser für Vektoren Reply with quote

Tibor Pausz <pausz (AT) stud (DOT) uni-frankfurt.de> wrote:
Quote:
Felix Brossmann <febro (AT) gmx (DOT) net> wrote:

Ich habe schon selbst geschafft, die Eingabe in ein char* zu lesen (inkl.
Leerzeichen) und die Anzahl der Elemente zu zählen, aber das Trennen schaffe
ich nicht.

Schau Dir dich bei <http://www.boost.org/> um, es gibt eine Regex, eine
Tokenizer und eine Parser Library (spirit). Mit diesen sollte sich das
Problem relativ einfach lösen lassen.

Fuer durch Leerzeichen getrennte Fliesskommazahlen ist das glatter
Overkill.

Andre'

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Tibor Pausz
Guest





PostPosted: Sat Dec 06, 2003 12:06 pm    Post subject: Re: Parser für Vektoren Reply with quote

André Pönitz <poenitz (AT) gmx (DOT) net> wrote:

Quote:
Fuer durch Leerzeichen getrennte Fliesskommazahlen ist das glatter
Overkill.

Mag sein, mag aber auch nicht sein. Jedenfalls ist der Tokenizer einfach
zu benutzen.

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.