Anfängerfrage: ifstream eine C-Funktion??
-
Inzwischen geht auch ein std::string mit neuem Compiler.
Aber daß man immer wieder mal "C-Funktionen" benutzen muss, ist voll ok. Das heißt nur, daß die Funktion in C UND C++ existiert und nicht bloß in C++.
-
Alte Library oder C++11 Features nicht aktiviert. Den
ifstreamKonstruktor mitstd::stringals Parameter gibts erst seit dann (http://en.cppreference.com/w/cpp/io/basic_ifstream/basic_ifstream).
-
Ah, vielen Danke, das hat geholfen

Für Leute mit ähnlichen Problem:
in Code::Blocks oben auf :
Settings > Compiler...
dort dann das Häckchen setzen:
http://www.fotos-hochladen.net/view/unbenanntdkao90wyxm.png
-
Da sind noch mehr interessante Checkboxes, z.B. -O2 oder -O3, AVX, -fomit-frame-pointer. Besser ist MS VS 2015 Community. Da geht viel mehr und richtiges x64.
-
Erhard Henkes schrieb:
richtiges x86.
Und was soll das sein?
-
sorry, x64 natürlich.

-
Gibt es etwa auch falsches x64?
-
Erhard Henkes schrieb:
Da sind noch mehr interessante Checkboxes, ... AVX, ...
Immer vorsichtig sein, was man Frischlingen für Ideen gibt. Wenn man Pech hat gibt es dann als nächstes "Mein Programm 'funktioniert nicht mehr'", was sich dann nach endloser Diskussion und Hilfe beim debuggen als sowas wie "Illegal Instruction" herusstellt.
Und ja, Prozessoren die sowas nicht können sind heute durchaus noch nicht selten (alles vor 2011, z.B. Core i7-880, etc.).Finnegan
-
Erhard Henkes schrieb:
Da sind noch mehr interessante Checkboxes, z.B. -O2 oder -O3, AVX, -fomit-frame-pointer. Besser ist MS VS 2015 Community. Da geht viel mehr und richtiges x64.
Das macht mich jetzt aber traurig.
Nicht das Code::Blocks-Bundle mit Compiler nehmen, sondern einen Nighty von CB und MSYS2 als Compiler. Wäre mir neu, daß der kein richtiges x64 macht. Meinste damit, daß er asm-Sachen ablehnt? Kann ich auf Arbeit mal testen.
Naja, -O3 -march=native -DNDEBUG -std=c++1y und ich möchte sehen, ob MS da rankömmt.
-
salusina schrieb:
while (quelle) { // Abbruch bei Fehler oder Ende der Datei string zeile; getline(quelle, zeile); // Lesen einer Zeile cout << zeile << ’\n’; // Anzeige }Ich hoffe, dass "Uli" zu diesem Beispiel anmerkt, dass es nicht ganz korrekt ist.
Das Mantra lautet: lesen, überprüfen, verarbeiten.
Der Code macht aber: überprüfen, lesen, verarbeiten.
Evtl. hast Du Dich ja auch schon gewundert, warum da immer eine Zeile mehr ausgegeben wird als in der Quelldatei stehen.