Hey Leute habe eine Liste geschrieben und da hat mir mein Freund folgende Zeilen gegeben
getline(d_laden,s,’;’);
istringstream puffer1(s); //input string aus der //Datei laden und in den puffer!
puffer1 >> n_name;
Meine Frage nun was macht dieses istringstream genau!
Also ich weiss das ich mit getline aus der Datei ein String hole und in das Objekt s speichere und dann wird dieser String in den Speicher n_name abgelegt, so was macht dieses istringstream nun???
Danke!!!
Gruss Saqib
Hallo
Hey Leute habe eine Liste geschrieben und da hat mir mein
Freund folgende Zeilen gegeben
…
Meine Frage nun was macht dieses istringstream genau!
Ein ‚stringstream‘ ist ein Objekt, das
vorne das übliche (C++)-IO-Stream-Interface
hat (mit >:wink: und hinten in einen String
statt in ein File schreibt (oder liest).
http://www.cplusplus.com/ref/iostream/stringstream/
getline(d_laden,s,’;’);
istringstream puffer1(s); //input string aus der
//Datei laden und in den puffer!
puffer1 >> n_name;
Also ich weiss das ich mit getline aus der Datei ein String
hole und in das Objekt s speichere und dann wird dieser String
in den Speicher n_name abgelegt, so was macht dieses
istringstream nun???
Es kopiert ’ s’ in ein Objekt ‚stringstream‘,
welches dann die Operatoren ‚>>‘ usw. bereithält.
Trotzdem würde ich das nicht (oder nur als
klitzekleine Ausnahme) je in ‚quality code‘
verwenden. Die Iostream-Lib ist IMHO etwas
‚overdesigned‘ und ‚clunky‘ 
// stdio-Variante:
...
if(fgets(str, sizeof str, DATEI)) {
sscanf(str, "%s", n\_name);
}
Vorteil der Iostreams hier (vs. stdio):
man muss nicht wissen, welchen Datentyp
n_name hat. Aber in 99 von 100 Fällen
weiss man diesen eben 
Grüße
CMБ
Hi
Trotzdem würde ich das nicht (oder nur als
klitzekleine Ausnahme) je in ‚quality code‘
verwenden. Die Iostream-Lib ist IMHO etwas
‚overdesigned‘ und ‚clunky‘ 
Ich hatte mal ausprobiert, welche Variante denn letztendlich schneller ist mit folgendem Programm:
#ifdef USE\_C
#include
#else
//#include
#include
#endif
int
main (int argc, char\* argv[])
{
int i;
#ifndef USE\_C
std::ios\_base::sync\_with\_stdio (false);
#endif
for (i = 0; i
Letztendlich sind durch den Synchronisationsschalter beide mindestens gleich schnell (jedenfalls auf meinem Rechner), also würde ich ja sagen, das die Performance da nicht so stark reinspielt? (täusch ich mich da stark?)
Was meinst du dazu Semjon?
mfg TLF