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 

Zeilen einlesen

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





PostPosted: Sun Apr 11, 2004 6:05 pm    Post subject: Zeilen einlesen Reply with quote



Hallo,

ich will mehrere Zeilen einlesen, die aus bestimmten Zeichen bestehen,
auch Leerzeichen am Anfang, dazwischen und am Ende.

Mit cin scheint das nicht ganz hinzuhauen, wie kann ich das lösen ?

z.B.

O S OO
OOOOOO
OOO OOO
OOO OO
OOO Z O

Diese String sollen alle gleich lang ein, ein paar haben Leerzeichen am
Schluß. Diese möchte ich in ein Array von Strings einlesen.

Grüsse, Markus

--
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
Ludwig Pumberger
Guest





PostPosted: Mon Apr 12, 2004 8:18 am    Post subject: Re: Zeilen einlesen Reply with quote



Markus Krebl schrieb:

Quote:
ich will mehrere Zeilen einlesen, die aus bestimmten Zeichen bestehen,
auch Leerzeichen am Anfang, dazwischen und am Ende.

Mit cin scheint das nicht ganz hinzuhauen, wie kann ich das lösen ?

z.B.

O S OO
OOOOOO
OOO OOO
OOO OO
OOO Z O

Diese String sollen alle gleich lang ein, ein paar haben Leerzeichen am
Schluß. Diese möchte ich in ein Array von Strings einlesen.

Array? Tu's nicht! Woher weisst du wie gross das Array sein soll?

Ich würde grob folgendes vorschlagen(Fehlerbehandlung fehlt):

#include <fstream>
#include <string>
#include <vector>

int main()
{
std::ifstream in(...);
std::string line;
std::vector<std::string> data;
while(std::getline(in, line))
data.push_back(line);
return 0;
}

--
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
Thomas Maeder
Guest





PostPosted: Mon Apr 12, 2004 8:56 am    Post subject: Re: Zeilen einlesen Reply with quote



Markus Krebl <markus.krebl (AT) gmx (DOT) net> writes:

Quote:
ich will mehrere Zeilen einlesen, die aus bestimmten Zeichen bestehen,
auch Leerzeichen am Anfang, dazwischen und am Ende.

Mit cin scheint das nicht ganz hinzuhauen, wie kann ich das lösen ?

Doch doch, das sollte schon gehen mit std::cin. Was hast Du denn versucht?

Quote:
z.B.

O S OO
OOOOOO
OOO OOO
OOO OO
OOO Z O

Diese String sollen alle gleich lang ein, ein paar haben Leerzeichen
am Schluß. Diese möchte ich in ein Array von Strings einlesen.

Versuch mal

std::vector<std::string> lines;
std::string line;
while (getline(std::cin,line))
lines.push_back(line);

--
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
Werner Salomon
Guest





PostPosted: Mon Apr 12, 2004 11:13 am    Post subject: Re: Zeilen einlesen Reply with quote

Markus Krebl <markus.krebl (AT) gmx (DOT) net> wrote

Quote:
ich will mehrere Zeilen einlesen, die aus bestimmten Zeichen bestehen,
auch Leerzeichen am Anfang, dazwischen und am Ende.

Mit cin scheint das nicht ganz hinzuhauen, wie kann ich das lösen ?

z.B.

O S OO
OOOOOO
OOO OOO
OOO OO
OOO Z O

Diese String sollen alle gleich lang ein, ein paar haben Leerzeichen am
Schluß. Diese möchte ich in ein Array von Strings einlesen.

Hallo Markus,
das sollte mit der Template-Funktion 'getline' zu machen sein. Etwa
so:
#include <iostream> // cin, cout
#include <string> // string, getline
#include <vector>

int main() {
using namespace std;
cout << "Ihre Eingabe bitte - beenden mit x " << endl;
vector< string > arr; // Array von Strings
for( string zl; getline( cin, zl ) && zl != "x"; ) {
// 'zl' enthält jetzt die Zeile
// .. 'zl' ggf. mit Leerzeichen auffüllen
arr.push_back( zl );
}
// ...
Falls Du eine MS VC6 Entwicklungsumgebung mit der mitgelieferten STL
benutzt, solltest Du vorher noch z.B. hier nachschauen:
<http://groups.google.de/groups?hl=de&lr=&ie=UTF-8&threadm=f2689e1c.0201281312.25f2bf59%40posting.google.com&rnum=1&prev=/groups%3Fhl%3Dde%26lr%3D%26ie%3DISO-8859-1%26q%3Dgetline%2Bsalomon%26btnG%3DSuche%26meta%3Dgroup%253Dde.comp.lang.iso-c%25252B%25252B>
getline hat in dieser Implementierung nämlich einen Fehler.

Gruß
Werner

--
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.