Zum Inhalt springen

Klotzkopp

Mitglieder
  • Gesamte Inhalte

    9912
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    3

Alle Inhalte von Klotzkopp

  1. Wenn du sicherstellst, dass am Anfang in zeile nichts drinsteht, ja.
  2. Das sieht nur so aus. Du gibt machst schon eine Bildschirmausgabe, bevor du die erste Zeile gelesen hast. Dass dabei kein Müll ausgegeben wird, ist nur Zufall. Das Problem ist, dass du feof zum falschen Zeitpunkt prüfst. Du musst das zwischen dem fgets und fprintf machen. Denn feof liefert erst dann Wahr, wenn fgets schon einmal fehlgeschlagen ist. Du prüfst das aber erst, nachdem du schon eine ungültige Zeile in die Datei geschrieben hast. Da steht halt noch das vom letzten Einlesen drin.
  3. Was heißt denn "einige Zeit"?
  4. Siehe Signatur
  5. Weil unsigned (laut Standard ist es übrigens nicht erlaubt, "int" wegzulassen) bei dir nicht nur 12 Bit hat, das sind dann nun mal mehr als 3 Hex-Ziffern. In einen String umwandeln und nur die letzten drei Ziffern ausgeben. Oder die oberen 20 Bits rausmaskieren. Nur nebenbei: Die Headerdateien iostream.h und iomanip.h sind veraltet. Die Dateien haben keine .h-Endung mehr. Alle Funktionen und Klassen liegen im Namespace std.
  6. Eine Funktion, die nicht Bestandteil des C++-Standards ist, sondern als Bestandteil einer Programmierschnittstelle eines bestimmten Betriebssystems angeboten wird. Unter Windows z.B. kannst du die Sharing-Rechte mit der API-Funktion CreateFile regeln. Wie gesagt, das, was du da machen willst, geht mit Standard-C++ nicht. Den Standard verlassen oder auf die Funktionalität verzichten, du musst dich entscheiden.
  7. Das ist nicht die open-Methode, sondern der Konstruktor. Der MSDN-Eintrag scheint sich auf MSVC6 zu beziehen, und auch ausdrücklich auf <fstream.h>, den veralteten Header. Vielleicht war das eine proprietäre Erweitung.
  8. basic_filebuf::open hat nur zwei Parameter. Soweit ich weiß, behandelt der Standard so etwas wie Schreibschutz nicht, da wirst du auf betriebssystemspezifische Funktionen zurückgreifen müssen.
  9. Die Einrückung ist in Ordnung. Allerdings bleibt davon nichts übrig, wenn keine Code-Tags benutzt werden.
  10. Gib mal den vollständigen Pfad zum Internet Explorer an.
  11. Mit einer Intialisierungsliste wäre das nicht passiert: StackAsFixedVector() : stack_size(-1) { }[/code]
  12. Wenn du eine Software einfach nur als "Müll" bezeichnest, ist das nicht sachlich. Schön, wenn du persönliche Erfahrungen nachreichst, aber dadurch ändert sich nichts an der Unsachlichkeit deines vorhergehenden Beitrags. Weitere Diskussionen darüber nur per PN.
  13. Wenn du keine sachlichen Argumente für oder gegen ein Produkt hast, dann halte dich bitte zurück.
  14. Und genau das geht in C und C++ nicht, wenn du dich nicht selbst darum kümmerst, dass die Typinformation da ist, sei es als String oder ID oder was auch immer. Aber wie ich schon sagte, das geht alles auch anders. Ich würde eher das Design ändern, als krampfhaft zu versuchen, einen Programmierstil in C++ umzusetzen, den die Sprache nicht unterstützt.
  15. Auch da muss man sich zur Compilezeit festlegen.
  16. Gar nicht. Mit dem Cast sagst du dem Compiler, dass du besser weißt als er, welcher Typ dahinter steckt. Der Compiler macht, was du sagst. Bei einem Cast bist du für das Ergebnis verantwortlich, nicht der Compiler. Der einzige, der da etwas falsch machen kann, bist du.
  17. Dann wirst du dich an das starre Typsystem von C und C++ gewöhnen müssen. Viele Dinge macht man da eben anders. Deine bewährten Methoden kannst du nicht einfach auf C++ übertragen. Templates werden ihm auch nichts bringen, weil die zur Compilezeit auswertet werden.
  18. Dann hast du wieder ein Designproblem. Der Datentyp eine void-Pointers ist void*. Kann es sein, dass du früher mit PHP oder einer anderen Scriptsprache gearbeitet hast?
  19. Das ändert am prinzipiellen Problem nichts. Mir ist nicht bekannt, dass das zur Laufzeit möglich wäre. Zur Compilezeit kann man das mit einer using-Direktive machen. Aber damit kann man nicht auf eine Benutzereingabe reagieren.
  20. Das riecht nach einem Designproblem. Dadurch, dass der Benutzer Funktionsnamen eingeben muss, bringst du Implementierungsdetails in die Benutzerschnittstelle.
  21. Nein, das geht nicht. Beim Compilieren werden alle Funktionsnamen und Variablennamen entfernt, daher kann diese Zuordnung zur Laufzeit nicht erfolgen. So etwas lässt sich aber auch immer anders lösen - und sei es mit einem assoziativen Container wie std::map. Was hast du denn vor?
  22. Abgesehen davon, dass ich das nicht empfohlen, sondern nur übernommen habe: Weil er C benutzt. Mit "true" konnte sein Compiler ja auch nichts anfangen. Und in C gibt es keine Referenzen.
  23. Das Problem mit dem Abbrechen ist nicht in main, sondern in eingabe. Diese Funktion wiederholt nämlich immer wieder die Eingabe, wenn man 0 0 0 eingibt. Das musst du also ändern. Für die Fehlerdiagnose ist es von enormer Wichtigkeit, dass du Fehlermeldungen nicht für dich behältst
  24. Oh, dann ist das wohl C, nicht C++. Nimm while(1). Zeig bitte nochmal den Code von main.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...