Was mache ich falsch?

Und das ! ist der Negationsoperator. Das heißt, er negiert den hinter ihm stehenden Ausdruck.
Aus !true wird false, aus !false wird true.
 
Vielen Dank an euch, habe das Projekt noch mal überarbeitet.
Könnt ihr mir sagen, was in der funktion modulu nicht funktioniert?
(Bei der Umwandlung des Strings).
 
Zuletzt bearbeitet:
atoi erwartet einen Zeiger auf char, also das was man in C einen String nennt. Du übergibst aber einen std::string (eine Instanz einer C++-Klasse).
std::string hat eine Memberfunktion c_str die du aufrufen musst. Also ratezahl2 = atoi(ratezahl.c_str());

Es sind auch noch ein paar Fehler im Programm, zb. wird ratezahl nirgendswo ein Wert zu gewiesen. Und alles über globale Variablen abzuwickeln ist auch nicht so schön.
 
Ich habe noch mal die Datei übersrbeitet, jetzt funktioniert meine Funktion Hauptspiel nicht mehr, wie sie soll.
Hat nochn mal einer ne lösung?
Ist die Lösung der Stringumwandlung(diese moduluzeilen) sinvoll?
 
Zuletzt bearbeitet:
Ist die Lösung der Stringumwandlung(diese moduluzeilen) sinvoll?
Ich muss sagen, dass ich gar nicht weiß, was die Funktion überhaupt machen soll :-).
Aber jetzt wo du was von Stringumwandlung schreibst, wird es mir denke ich klarer. Die C-Library-Funktion atoi wandelt deine Stringeingabe in einen int um. Macht damit atoi nicht schon genau das, was du willst?
 
Nein, entschuldigung.
Ich meinte darunter, die Zeilen mit der Berechung zu einem der String-Zahl entsprechenden Integer.
Wenn ich bei einem String 9 eingebe, gibt er nach der Umwandlung dem ASCII Code entsprechend 39 zurück.
das wollte ich nicht, denn dan müsste man ja bei einer Zufallszahlenspanne von 1-100 (wenn die Zufallszahl genau 100 entspricht) etwas mehr eingeben.
 
Das Problem mit dem Integer zu String Weretübereinstimmung habe ich immer noch nicht gelöst, hab aber auf Visual C++ express gewechselt.
Würde mich über viele Vorschläge freuen.

PS: Das Programm gibt es jetzt komplett mit ausführbarer exe und allen abderen Dateien.

Das Problem liegt in den Funktionen stringumw und ausrechnung, die müssen dafür verantwortlich sein, dass der Wert nicht übereinstimmt.

Die Struktur wird noch mal leicht überarbeitet, die globalen Variablen sollen aber so bleiben, ausser ihr bringt ein K.O. Argument dagegen.

Ansonsten würde ich sagen: Beta 0.55 ist fertig!!!!!!!!!!
 
Zuletzt bearbeitet:
Das Problem liegt in den Funktionen stringumw und ausrechnung, die müssen dafür verantwortlich sein, dass der Wert nicht übereinstimmt.
Ja, da liegt der Fehler. Hast du die Funktionen mal seperat mit verschiedenen Werten getestet oder auf einem Stück Papier durchgerechnet?

Mir ist auch nicht ganz klar, warum du überhaupt eine String->Int-Umwandlung im Programm hast, anstatt direkt in einen int einzulesen. Genauso wie es dir bingo88 schon vorgeschrieben hatte:
http://extreme.pcgameshardware.de/1815201-post16.html

Und jetzt gehen wir mal durch, was du in der Funktion stringumw bzw. ausrechnung geschrieben hast:
1. Der User gibt in den std::string ratezahl seine geratene Zahl ein (zb. "123").
2. in ausrechnung wandelt atoi den String "123" in einen int um und in int ratezahl2 steht jetzt der Wert 123.
Ist 123 in ratezahl2 nicht genau der Wert, den du haben wolltest?
Die ganzen Berechnungen, die du dann noch ausführst, sind mir nicht klar.

Es sind auch sonst noch ein paar kleine Fehler drin, wie hier: while (exit=true);
Schau noch mal nach, wie bingo88 das in seinem Programm geschrieben hat.

Die Struktur wird noch mal leicht überarbeitet, die globalen Variablen sollen aber so bleiben, ausser ihr bringt ein K.O. Argument dagegen.
Also ein K.O. Argument gegen globale Variablen in deinem jetzigen Programm nicht unbedingt.
Aber wenn Programmieren mal mehr werden soll als ein Zeitvertreib, dann solltest du so früh wie möglich damit anfangen, dir einen guten Stil anzueignen. Und eine Regel guten Stils ist es, eine Variable so lokal wie möglich zu definieren.
Globale Variablen bringen mehr Ärger als Nutzen.
 
Also das mit dem Integer-Einlesen habe ich gemacht, weil er sonst bei einem Buchstaben abstürzt.
Steht aber im Integer nicht bei z.B. 31303030 (bei 1000 im String?), wegen dem ASCII-Code?
 
Mist, hab gerade festgestellt, das die Funktion meine Berechnungen schon inbegriffen hat.
hab mir 2 Tage umsonst den Kopf zerbrochen-für umsonst.
Werde den fertigen Built hier für ein paar Tage reinstellen.
 
Son das Programm ist fertig, könnt es per PN bei mir holen.
Ich wollte es mir jetzt anschaulicher machen. (mit buttons und so).

Jetzt hab ich ein paar Fragen:
1.
Wenn ich auf einen Button nen doppelklick mach und dann " listBox1 -> Text = "Hallo" "
hinschreibe, kommt beim Ausprobieren kein Text.

2.
Gibt es so was wie die "main" Funktion in der Konsole?

3.
Wo kann ich meine funktionen deklarieren? (Bei konsole under "using namespace std").

Freue mich über Antworten.
 
Zuletzt bearbeitet:
Leute, ich würde mich sehr freuen, wenn ihr mir sagt, warum das Programm ikm Anhang nicht funzt.
Irgendwo in der Laden-Funktion muss ein Fehler sein.
 
Das erste Problem ist eine falsche Klammersetzung. Es fehlt eine }-Klammer am Ende von main und am Programmende ist eine }-Klammer zu viel. Schau da noch mal genau rüber.

Und dann bei deinen Funktionsrümpfen (ich denke damit wird auch deine dritte Frage beantwortet):
PHP:
int prspeichern(); //<- Da muss das Semikolon weg
{
    string text;
...
Das sollte erstmal reichen, damit es überhaupt compiliert. Dann solltest du auch die restlichen Fehler in deinem Programm finden können.

Aber noch was: Rufe nicht main auf. Wenn du laden/speichern mehrmals aufrufen willst, dann mach das über eine Schleife in main.

Deine zweite Frage "Gibt es so was wie die "main" Funktion in der Konsole?", verstehe ich nicht, was du meinst. Kannst du das noch mal genauer erklären?
 
Mit dem main meinte ich einen Hauptthread in der objektorientierten Programmierung mit c++.
 
Zurück