File auslesen und in struct speichern
-
warum werde ich nur gemoppt?
könnt ihr nicht kurz einen 10 Zeiler schreiben in dem dieses file ausgelesen wird und in den struct gespeichert wird ?
-
Im ANSI C forum hatte genau einer das gleiche problem
http://www.c-plusplus.net/forum/viewtopic-var-t-is-212422.html
jetzt kannst da ja kcuken wie es gemacht wiurd
EDIT: ganz ehrlich hast du den überhaupt nen plan, oder hast den bisherigen code auch geklaut?
-
xmo schrieb:
bin in c++ ein Neuling und versuche schon seit einiger Zeit einen File einzulesen und in ein struct zu stopfen.
Meine Erste Frage: C++ oder C, mit C++ hat dein Code (und auch die Anmerkungen von Boris) so gut wie garnichts zu tun.
xmo schrieb:
Bitte schreibt mir jetzt nicht irgendwelche links und Google suchstichwörter, die werde ich alle schon gelesen gehabt haben.
Mit Sicherheit wirst du das nicht getan haben, sonst hättest du mindestens auch in die FAQ und das Magazin geschaut (Links rechts oben)
Ansonstend nenn ich dir ein paar Stichwörter: fstream csv
(Zu csv gibt es einige ausführliche Beispiel im Internet, und ob nun als Trennzeichen ein ; oder : ist, ist wohl egal).cu André
-
xmo schrieb:
warum werde ich nur gemoppt?
könnt ihr nicht kurz einen 10 Zeiler schreiben in dem dieses file ausgelesen wird und in den struct gespeichert wird ?Mobben sieht anders aus...
Und warum sollte man sich selbst mehr Arbeit machen, als die Menge an Eigeninitiative die man vom gegenüber wahrnimmt.cu André
-
asc schrieb:
Meine Erste Frage: C++ oder C, mit C++ hat dein Code (und auch die Anmerkungen von Boris) so gut wie garnichts zu tun.
meine anmerkung ist C, und dem threadsteller ist es scheiss egal ob C oder C++ , deswegen mir auch^^
-
Für was ist denn das? Für die Schule?
Wieso sollte sich irgendwer unentgeldlich Sachen für Dich machen, wenn Du selbst nicht über die Aufgabe (ich nehme mal an, dass es eine Aufgabe ist) reflektierst?
-
BorisDieKlinge schrieb:
meine anmerkung ist C, und dem threadsteller ist es scheiss egal ob C oder C++ , deswegen mir auch^^
Da wir in einen C++ Forum unterwegs sind, ziehe ich dennoch C++ vor. Und der Threadsteller sollte sich endlich mal entscheiden was nun. Mischen kann man zwar theoretisch, mit sauberer Programmierung hat das aber nichts zu tun.
cu André
-
Tachyon schrieb:
Ich sehe kein C++. ...
Na - immerhin benutzt er std::string ... das ist ja schonmal was.

Gruß,
Simon2.
-
xmo schrieb:
wie gesagt bin ich ein voll noob, ich hab keine ahnung was c und was c++ ist. aber solang es funktioniert reicht mir das erstmal.
Folgendes funktioniert auf einem C++-fähigem Compiler:
#include <algorithm> // sort #include <iostream> #include <fstream> // ifstream #include <string> #include <vector> #include <iterator> // istream_iterator struct pwdent { std::string name; std::string pwd; int uid; int gid; std::string gcos; std::string home; std::string shell; // .. für das Sortieren braucht man einen Vergleichsoperator bool operator<( const pwdent& b ) const { // hier festlegen ob '*this' vor 'b' kommt. // z.B.: return name < b.name; } }; // dieses Helferlein liest z.B. die Doppelpunkte template< char C > std::istream& sep( std::istream& in ) { char c; if( in >> c && c != C ) in.setstate( std::ios_base::failbit ); return in; } // und hier ist die eigentliche Lesefunktion std::istream& operator>>( std::istream& in, pwdent& x ) { return std::getline( std::getline( std::getline( std::getline( std::getline( in, x.name, ':' ), x.pwd, ':' ) >> x.uid >> sep<':'> >> x.gid >> sep<':'>, x.gcos, ':' ), x.home, ':' ), x.shell ); } int main() { using namespace std; const string path = "/etc/password"; ifstream file( path.c_str() ); if( file.is_open() ) { vector< pwdent > pwdents( (istream_iterator< pwdent >( file )), istream_iterator< pwdent >() ); sort( pwdents.begin(), pwdents.end() ); // fertig sortiert in 'pwdents' } else cout << "Fehler beim Oeffnen" << endl; return 0; }Gruß
Werner
-
Jetzt hat er erst mal nen Schock für's Leben und steigt ganz schnell wieder auf BASIC um

-
Mal ohne Witz, jemand der im Web ausgiebig sucht, alles liest, sich anderweitig informiert, und dann tatsächlich hier noch ne Frage stellt, bekommt sicher auch keine Antwort, weil die Frage zu schwer,das Programm zu komplex ist.
Entscheidet euch mal ob man hier Fragen stellen darf, oder ob nur Experten mit 10 Jahren Erfahrung zugelassen werden.
-
eigentlich sind nur experten ab 15 jahren zugelassen... es braucht schliesslich 15 jahre erfahrunge bis man fähig ist eine datei auslesen und ein string splitten zu können... wir geben uns nur mit progarmmeren dieser enormen komplexität ab..
-
Ein Anderer schrieb:
Mal ohne Witz, jemand der im Web ausgiebig sucht, alles liest, sich anderweitig informiert, und dann tatsächlich hier noch ne Frage stellt, bekommt sicher auch keine Antwort, weil die Frage zu schwer,das Programm zu komplex ist.
Mal ohne Witz: Das von dir geschriebene ist einfach nur sinnfrei. Es gibt im Netz auch mit nur wenig Suchaufwand die benötigten antworten, wenn man dazu noch in der Lage ist oben rechts die beiden Links FAQ und Magazin zu finden sollte man zumindestens eine grundlegende Vorstellung bekommen (zudem wenn man sich vielleicht mal ein grundlegendes C++ Buch [wie z.b. den C++ Primer] oder Tutorial anschaut). Und von komplex ist hier wirklich nicht die Rede.
Es geht auch garnicht darum wie viel oder wenig einer an Wissen hat, man darf aber annehmen das dieser sich zumindest Motiviert an die Sache herangewagt hat und auch Eigeninitiative zeigt. Ist das gegeben werden sogar noch deutlich leichtere Sachen beantwortet. Eben das vermisse ich aber bei recht vielen Beiträgen. Wieso sollte man sich also von seiner durchaus kostbaren Zeit etwas nehmen wenn man nicht das Gefühl hat, das es in irgendeiner Art und Weise fruchtbar ist.
cu André
P.S: Und google mit ein paar passenden Stichworten zu füttern sollte bereits mit der ersten Seite möglich sein (z.b. "c++ csv read fstream")
-
asc schrieb:
[...]
cu André
-
Auch wenn ich die konzeptionelle Reinheit bewundere ... das hier finde ich doch zu unübersichtlich:
Werner Salomon schrieb:
...
return std::getline( std::getline( std::getline( std::getline( std::getline(...
Gruß,
Simon2.
-
Ein Anderer schrieb:
...Entscheidet euch mal ob man hier Fragen stellen darf, oder ob nur Experten mit 10 Jahren Erfahrung zugelassen werden.
Die Entscheidung ist schon längst gefallen: Man darf hier Fragen stellen.
Was hier aber nicht gern gesehen wird, sind "Faulheitslügen" wie:
xmo schrieb:
...Bitte schreibt mir jetzt nicht irgendwelche links und Google suchstichwörter, die werde ich alle schon gelesen gehabt haben....
Wer noch nicht gesucht hat, soll das auch nicht als Argument anführen - und wer noch nicht gesucht hat (und das stellt sich bei solchen 0815-Standard-Aufgaben seeeeehr schnell heraus), der muss sich eben die Frage gefallen lassen, warum er das nicht getan hat.
Auch mal "ohne Witz": Es ist noch nie jemand gestorben an der Frage, warum er google nicht benutzt hat.
Gruß,
Simon2.
-
Wer Google benutzt, bzw recherchiert braucht hier keine Frage mehr stellen, weil er
a) die Antwort dann schon kennt
oder
b) die Frage zu kompliziert ist.Realität ist, das eigentlich jeder der hier ne Frage stellt zu faul war selbst zu suchen.
Ihr tut dann aber immer so überrascht und entsetzt wie es denn sein kann dass sich jemand nicht völlig selbst drum kümmert. Ok, in dem Thread habt ihr für die Aufregung ja immerhin die Rechtfertigung dass er wohl nicht ganz die Wahrheit gesagt hat, aber in anderen is ja die Freundlichkeit auch nicht unbedingt besser.Naja, vergnügt euch weiter, ich wollte es nur einmal gesagt haben und halte mich wieder raus.
-
Derselbe wie vorher schrieb:
...Realität ist, das eigentlich jeder der hier ne Frage stellt zu faul war selbst zu suchen....
Wenn das Deine Meinung ist, stehst Du halt ziemlich einsam hier im Forum.
Freunde exakten Denkens haben die Differenzierung schätzen gelernt: Wer Fragen zu 0815-Aufgabenstellungen (AHA !!!) stellt und behauptet, er habe schon das gesamte INetwissen durchgelesen, macht sich unglaubwürdig !
Es ist schon ziemlich erstaunlich, dass oftmals der Antwortende innerhalb weniger Minuten einen Link auf eine monate- bis jahrealte Seite liefern kann, die exakt, leicht verständlich eine Standardlösung bietet...Derselbe wie vorher schrieb:
...Naja, vergnügt euch weiter, ich wollte es nur einmal gesagt haben und halte mich wieder raus.
Wir werden Dich vermissen.
(Und die Heerscharen der unterdrückten zu Unrecht "Auf-die-Suche-verwiesen" erst Recht)Gruß,
Simon2.
-
Derselbe wie vorher schrieb:
Wer Google benutzt, bzw recherchiert braucht hier keine Frage mehr stellen, weil er...
Du verstehst es immer noch nicht, oder? Man erwartet nicht von dem der hier eine Frage stellt, das er die Antwort kennt, oder das er mit den Recherchen im Internet bereits eine Lösung gefunden hat, die ihm weiter hilft. Wir (zumindestens die meisten hier) erwarten aber, das man merkt das sich derjenige zumindestens schon selbst Mühe gemacht hat. Eben das war vom Poster nicht zu beobachten, in Kombination mit seiner Aussage hat er sich disqualifiziert.
Und gerade bei dem wirklich simplen Thema hätte man auch etwas gefunden. Ob man dies dann versteht, ist eine andere Frage - nur hätte man dann konkretere Fragen stellen können. Für einen realistischen Stundensatz würde ich natürlich auch ohne das der gegenüber Eigeninitiative zeigt, meine Hilfe anbieten (beginnt mit etwa 50 Euro/angefangene Stunde).
cu André