Probleme mit FILE* ("ýýýý««««««««þîþ" am ende des Strings)
-
Ok: Ihre habt wohl recht.
Ich habe schon überlegt ein Buch zu besorgen
Was C++ zu 100 % behandelt. Weil meine kenntnis
(Nach eigener Meinung) ziemlich brüchig sind.Könnt ihre mir eins empfehlen?
Ich persönlich habe mich nie mit C beschäftigt.
Ich kenne keine Syntex von C. Mir ist nie bewußt gewesen,
Das ich etwas vermischte.Naja. Danke für die Infos und Ratschläge.
-
Sebastian Müller schrieb:
Ich persönlich habe mich nie mit C beschäftigt
Mit C++ aber auch nicht, sonst wüßtest du die Unterschiede.
Sebastian Müller schrieb:
Ich kenne keine Syntex von C. Mir ist nie bewußt gewesen, Das ich etwas vermischte.
(Sehr) viel C-Code ist auch gültiger C++-Code.
Aber (modernes) C++ wird anders programmiert.
-
Ok. Kann mir jemnad ein buch empfehlen?
-
Sebastian Müller schrieb:
Ok. Kann mir jemnad ein buch empfehlen?
- C++ Primer (5th Edition) vov Lippmann
- Der C++ Programmierer von BreymannSuch dir eins aus. Es beides Bücher für Anfänger.
-
Schau mal in die Signatur von SeppJ
z.B. bei http://www.c-plusplus.net/forum/p2410545#2410545
-
Nur aus Interesse.
Wie sieht der Code eurer Meinung nach oben in 100 % C++ aus?
Ich bin jetzt mal gespannt.Ich hole mir das Buch von Breymann.
Behandelt es auch die komplette Sprache (0 - 100)?
-
Sebastian Müller schrieb:
Wie sieht der Code eurer Meinung nach oben in 100 % C++ aus?
Ich bin jetzt mal gespannt.Da können jetzt 100 verschiedene Antworten kommen. Zumal vieles in deinem Code so unschön ist, dass es den C++-Code unschön machen würde, wenn man es direkt so übernähme. Z.B. würde man die benutzte AddLog-Funktion in C++ sicherlich anders machen. Und du benutzt globale Variablen, was man weder in C noch C++ machen sollte, aber ohne genau zu wissen, was im Rest deines Programms passiert, kann man schwer sagen, wie es besser ginge (das ist ja gerade ein Problem von globalen Variablen, dass man das ganze Programm kennen muss, um lokal Aussagen über das Programmverhalten treffen zu können). Daher zeig ich mal nur einlesen einer Datei in ein Datenfeld.
Eine bewusst für den Uneingeweihten unleserliche, aber dafür sehr kurz und knackige, Lösung wäre:
#include <vector> #include <iostream> #include <fstream> #include <iterator> int main() { using namespace std; ifstream file("test.dat", ios::binary); vector<char> data((istreambuf_iterator<char>(file)), istreambuf_iterator<char>()); clog << "Datei erfolgreich geladen(" << data.size() <<" Byte)\n"; }Das dürfte von den meisten Lesern hier aber ohne Probleme verstanden werden (wobei viele sich vielleicht ein paar Sekunden über die scheinbar überflüssigen Klammern in Zeile 10 wundern und dann ein kleines Aha!-Erlebnis haben werden).
-
SeppJ schrieb:
wobei viele sich vielleicht ein paar Sekunden über die scheinbar überflüssigen Klammern in Zeile 10 wundern und dann ein kleines Aha!-Erlebnis haben werden).
Für solche Fälle habe ich die Paranthesen schon entlassen und die {} eingestellt.
-
vector<char> data(istreambuf_iterator<char>{file}, {});Ja, die arbeiten besser, nicht wahr?
@SeppJ: Warum
clog?
-
Personalchef schrieb:
Für solche Fälle habe ich die Paranthesen schon entlassen und die {} eingestellt.
Prima Fremdwort, aber in welchem Zusammenhang bedeutet es "runde Klammern"?
-
volkard schrieb:
Personalchef schrieb:
Für solche Fälle habe ich die Paranthesen schon entlassen und die {} eingestellt.
Prima Fremdwort, aber in welchem Zusammenhang bedeutet es "runde Klammern"?
Korrektur:
<en_US>parantheses</en_US>
-
Hallo zusammen
Ich bestelle mir folgendes Buch
Es ist Top aktuell und behandelt auch C++11.
Wobei ich mich immer fragte, was 11 bedeutet.
-
Geburtsdatum des Standards (+/- ein paar Jährchen)
-
Sebastian Müller schrieb:
Es ist Top aktuell und behandelt auch C++11.
Topaktuell wäre C++14.
-
Ja aber das reicht mir.
Ich mache das jetzt aktuell noch als Hobby.