-
Gesamte Inhalte
9912 -
Benutzer seit
-
Letzter Besuch
-
Tagessiege
3
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von Klotzkopp
-
Auch zu demselben Zeitpunkt, zu dem in deinem Programm das Problem auftritt, d.h. während dein Programm läuft? Gegebenenfalls musst du dein Programm, z.B. mit einer MessageBox, anhalten, um genug Zeit zu haben, das zum richtigen Zeitpunkt zu testen.
-
Das ist kein C++, das ist die daran angelehnte .NET-Sprache C++/CLI. Ist das beabsichtigt? Falls ja, bist du damit hier im falschen Forum.
-
Und in was? Es gibt etwas mehr als einen BASIC-Dialekt.
-
Im Standard nicht, du musst auf betriebssystemspezifische Funktionen zurückgreifen. Unter Windows wäre das FindFirstFile und FindNextFile. Ist das die vollständige Fehlermeldung? Kannst du denn den Ordner im Explorer löschen?
-
Bin am verweifeln bezüglich eines Kontaktformular
Klotzkopp antwortete auf Gateway_man's Thema in .NET
Ich glaube nicht, das hier jemand eine .exe-Datei runterlädt und ausführt. Warum machst du nicht einfach einen Screenshot? -
Wie lange sind statische Member einer Klasse im Speicher ?
Klotzkopp antwortete auf Mr. Miyagi's Thema in C und C++
Static-Klassenmember haben "static storage duration", d.h. sie existieren so lange, wie das Programm läuft. Die Reihenfolge der Zerstörung ist umgekehrt zur Erzeugung. Ich würde erst einmal prüfen (z.B. mit Process Explorer), welches Programm da noch ein Handle auf den Ordner hat. Vielleicht ist es ja gar nicht deins. -
Mit einer einfachen if-Anweisung wirst du das nicht abfragen können. Du musst im Prinzip die Geldrückgabe durchspielen und prüfen, ob es aufgeht. Wenn deine innere Schleife für das Wechselgeld einmal komplett durchgelaufen ist, und immer noch Wechselgeld übrig ist, dann hast du nicht genug. Die äußere Schleife ist unnötig.
-
Wie würdest du das denn lösen, als Mensch? Das kann manchmal ein guter Ansatz sein, wenn einem sonst so gar nichts einfällt. Du kannst doch entscheiden, welche von zwei Zahlen die größere ist, oder? Beschreib, wie du dabei vorgehst, dann hast du deinen Algorithmus.
-
Der zuletzt gezeigte Code kann nicht funktionieren, egal ob mit oder ohne MFC, weil da ein Fehler drin ist. Ich schreibe absichtlich nicht, was es ist, damit nicht noch ein "Tippfehler" sang- und klanglos korrigiert wird und das Spielchen weitergeht. Das bringt nichts. Wenn es bei dir funktioniert, dann sieht dein Code anders aus! Wenn du Hilfe willst, musst du den echten, vollständigen Code hier reinstellen. Mit Copy & Paste. Kein einziges Stück Code, das du hier gezeigt hast, zeigt den Fehler, den du angibst. Mit diesem Versteckspielchen kommst du nicht weiter, sondern vergeudest nur die Zeit der Helfer.
-
Benutz eine Schleife statt goto. Die Verwendung von goto macht größere Programme schnell unübersichtlich und unwartbar, also solltest du dir so schnell wie möglich angewöhnen, wie man ohne goto auskommt. Die Includedirektive für conio.h kannst du weglassen, weil du keine dort deklarierte Funktion benutzt. Außerdem würde ich statt der Zahlenwerte 43, 45, 27 und 47 die Zeichenliterale '+', '-', '*' und '/' benutzen. Ansonsten sieht das gut aus. Der Ansatz wird sich aber nicht auf komplexere Terme übertragen lassen.
-
Es gibt in dem Code zwei Variablen mit dem Namen preis. Eine in der Funktion main und eine in der Funktion geldeingabe. Diese beiden Variablen haben nichts miteinander zu tun, sie sind komplett unabhängig. Der gleiche Name bewirkt nicht, dass da irgendwelche Werte übertragen werden. Darum musst du dich schon selbst kümmern, z.B. indem du der Funktion geldeingabe einen Parameter verpasst. Die Lösung sollte übrigens nicht sein, die Variable preis global zu machen.
-
Elegante Lösung um Template Funktion in einer Klasse zu nutzen
Klotzkopp antwortete auf Mr. Miyagi's Thema in C und C++
Nein, das hatte ich nicht gemeint. Du solltest nur den gemeinsamen Teil auslagern. Ich hoffe, mit dem Abfragen des Typs meinst du nicht die Template-Variante. Template benutzt man, wenn Code für viele unterschiedliche Typen gleich ist. Wenn du sowieso eine Typunterscheidung machen musst, und dann je nach Typ etwas komplett anderes machst, ist die Verwendung vom Templates Unsinn. Das würde aber erklären, warum sich dein Code so aufbläht: Weil dann die Typunterscheidung selbst und die unterschiedliche Behandlung für jeden einzelnen Templatetyp erstelllt werden muss. Wenn diese func-Funktionen also sowieso für jeden Typ komplett anders aussehen, dann benutz dafür bitte keine Templates. Überladung ist dann genau richtig. -
Immer noch? Heißt das, auch vor dieser Änderung (also mit <stdio>) hast du einen Fehler wegen ofstream bekommen? Oder war das wieder nur ein "Tippfehler"? Ich glaube nach wie vor nicht, dass du den echten Code gezeigt hast. Jedenfalls hast du ihn nicht mit Copy&Paste hier reingesetzt, sonst könnten ja keine Tippfehler drin sein. Wir können jetzt weiterraten und uns von Tippfehler zu Tippfehler hangeln, wobei die Gefahr besteht, dass das eigentliche Problem durch einen weiteren Tippfehler behoben wurde. Oder du zeigst den wirklichen Code. Mit Copy&Paste, nicht abgeschrieben.
-
Komisch. Genau dieser Code führt bei mir zu fatal error C1083: Cannot open include file: 'stdio': No such file or directory Es gibt keinen Header namens <stdio>. Es gibt <stdio.h> in C und <cstdio> in C++.
-
Zeig bitte den wirklichen Code. Dein "Beispielcode" führt nur die Helfer auf falsche Fährten. Der gezeigte Code bewirkt nicht diesen Fehler.
-
Elegante Lösung um Template Funktion in einer Klasse zu nutzen
Klotzkopp antwortete auf Mr. Miyagi's Thema in C und C++
Rein theoretisch könntest du den einzigen bekannten Compiler benutzen, der das export-Schlüsselwort unterstützt. Aber auch das würde das Problem nicht lösen, dass der Code größer wird. Templates müssen für jeden Templateparametertyp einzeln instanziiert werden, daran führt auch mit export kein Weg vorbei. Ist diese Funktion denn sehr groß? Besteht die Möglichkeit, Teile der Funktion, die nicht vom Templateparameter abhängen, in nicht-Templatefunktionen auszulagern? -
Schlimmer als vorher. Du hast fast alles, was richtig war, entfernt. Du brauchst keine main-Funktion, weil in der Aufgabenstellung nicht nach einem vollständigen Programm gefragt wird. Selbst wenn, wäre es Blödsinn, um alles einen main-Block zu legen. intx gibt's nicht. element ist in push und pop kein gültiger Bezeichner, weil es weder eine lokale noch eine globale Variable mit diesem Namen gibt. Es gibt ein Element einer Struktur. Strukturelemente spricht man an, indem man den Namen des Strukturobjekts und den Namen des Elements mit dem Punkt-Operator (.) verbindet. Selbst dieses Strukturelement "element" ist kein int, kann also nicht 0 oder 8 sein.
-
struct stack { int element[8]; int tail; }; // [COLOR="SeaGreen"]Soweit, so gut.[/COLOR] struct stack intstack; [COLOR="SeaGreen"]// Auch O.K.[/COLOR] void init() { stack tail=0; [COLOR="#2e8b57"]// Das ist Quatsch. Es gibt keinen Typ namens stack // (bestenfalls struct stack, aber auch das wäre Quatsch, // es gibt ja schon den globalen Stack).[/COLOR] } void push(struct stack, int x) [COLOR="#2e8b57"]// Parameterliste entspricht nicht der Aufgabenstellung[/COLOR] { if(tail==8) error("full"); [COLOR="#2e8b57"]// hier gibt's kein tail[/COLOR] element[tail]=x; [COLOR="#2e8b57"]// und auch kein element[/COLOR] tail=tail+1; [COLOR="#2e8b57"]// s.o.[/COLOR] return; [COLOR="#2e8b57"]// Das kann weg[/COLOR] }; [COLOR="#2e8b57"]// Das Semikolon ist überflüssig[/COLOR] int pop(struct stack) [COLOR="#2e8b57"]// Parameterliste entspricht nicht der Aufgabenstellung[/COLOR] { int x; if(tail==0) error("empty"); [COLOR="#2e8b57"]// s.o.[/COLOR] x=element[tail-1]; [COLOR="#2e8b57"]// s.o.[/COLOR] tail=tail-1 [COLOR="#2e8b57"]// s.o., Semikolon fehlt[/COLOR] return x; }; [COLOR="#2e8b57"]// s.o.[/COLOR][/code] Auf Elemente einer Struktur greift man übrigens mit dem Punkt-Operator zu.
-
Nein, weil in der Aufgabe nichts von libtree steht, und das ausführbare Programm auch nicht "myprog" heißen soll. Sieht danach aus, als hättest du von irgendwoher abgeschrieben, ohne es zu verstehen. Die Lösung ist viel einfacher. Es ist nur eine einzige Zeile.
-
Dann verstehe ich nicht, warum du nicht weißt, was mit dieser Aufgabe erreicht werden soll. Da sind 3 Quellcodedateien angegeben, und du sollst sagen, wie man den Compiler aufruft, um daraus eine ausführbare Datei mit vorgegebenem Namen zu erstellen.
-
Weißt du, was die Aufgabe eines Compilers ist?
-
Ja, das sollte fast jedem hier klar sein. Ich möchte rausfinden, ob Knigge87 die notwendigen Kenntnisse besitzt, diese Aufgabe zu lösen, und ihn durch passende Fragen auf den Weg zur Lösung bringen. Klappt natürlich nur, wenn niemand vorsagt
-
Du sollst sagen, wie die dazugehörige Kommandozeile, also der Aufruf des Compilers aussieht.
-
Was sollen Pop und Push denn tun? Und welche Informationen muss ein Stapel verwalten?
-
Es geht aber um C++, nicht um C.