 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Felix Brossmann Guest
|
Posted: Thu Dec 04, 2003 9:39 pm Post subject: Parser f374r Vektorenn ^ |
|
|
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
|
Posted: Thu Dec 04, 2003 11:08 pm Post subject: Re: Parser für Vektoren |
|
|
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
|
Posted: Fri Dec 05, 2003 12:05 pm Post subject: Re: Parser für Vektoren |
|
|
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
|
Posted: Fri Dec 05, 2003 12:14 pm Post subject: Re: Parser für Vektoren |
|
|
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
|
Posted: Sat Dec 06, 2003 12:06 pm Post subject: Re: Parser für Vektoren |
|
|
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 |
|
 |
|
|
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
|
|