While-Schleife
-
Hey Leute,
ich habe in meinem Programm eine While-Schleife angelegt, welche den Text "Eine Bombe explodiert" einmal ausgeben soll, wenn erfolgreich gecast wurde. Nun wird das gesamte Konsolenfenster vollgeschrieben. Was mache ich verkehrt, ich weis nicht weiter? Vielen Dank f+ür eure Hilfe!
Meine Vererbungshierarchie gestaltet sich folgendermaßen:
ARM erbt alles von BASEHeaderdatei:
typedef struct {
uint32_t cob_id;
uint8_t flags;
uint8_t len;
uint8_t data[8];
uint32_t timestamp;
} Message; //Struct vom Typ Messageint a=2;
ARM* p_controller;
Driver m_Driver; //Objekt m_Driver der Klasse Driver erzeugen
CPP-Datei:
Message msg; //Alias vom Typ Message erzeugen
ARM* px=dynamic_cast<ARM*>(p_controller);
if (px)
a=1;bool Class::WriteMessage(uint32_t cob_id, uint8_t length, uint8_t* dataBytes)
{
Message msg;
if (m_Driver.Send( &msg) == CAN_OK)
{
return true;
}
return false;
}while(a==1)
{
std::cout <<"Eine Bombe explodiert:" <<a<<endl;}
Definition der Funktion Send:
Send(Message *m)
{
return true;
}Was mache ich verkehrt? Vielen Dank für eure Hilfe!
-
Was erwartest du denn von einer Schleife, wenn nicht Wiederholungen?
P.S.: Argh! Immer noch globale Variablen? Auch noch im Header definiert?

Dass dein Klassendesign schlecht ist, muss ich wohl auch nicht mehr sagen, oder?
-
Wieso ein schlechtes Klassendesign?
-
Deine Antwort mit der Schleife verstehe ich auch nicht, geht das nicht etwas konkreter?
-
C++Pete schrieb:
Wieso ein schlechtes Klassendesign?
Weil dynamic_cast nötig.
Das ist nur der deutlichste Grund, da ist noch sehr vieles, was mir nicht geheuer ist. Du hast doch schon reichlich Schelte wegen deines Codes in deinen anderen Threads bekommen. Ich sehe, du hast (wie leider zu erwarten war
) absolut gar nichts davon verbessert.C++Pete schrieb:
Deine Antwort mit der Schleife verstehe ich auch nicht, geht das nicht etwas konkreter?
Nein. Was machen Schleifen?
-
Na die schleifen doch was ab, sorry zählen was durch. While ist doch das selbe wie if oder lieg das verkehrt?
-
6.5.1/1 schrieb:
In the while statement the substatement is executed repeatedly until the value of the condition (6.4) becomes false. The test takes place before each execution of the substatement.
6.4.1/1 schrieb:
If the condition (6.4) yields true the first substatement is executed. If the else part of the selection statement is present and the condition yields false, the second substatement is executed. In the second form of if statement (the one including else), if the first substatement is also an if statement then that inner if statement shall contain an else part. 85
-
Ja, du liegst verkehrt.
while bedeutet solange. Solange die Bedingung true ist, führe die Anweisung aus.
Les ein gutes Grundlagenbuch, bitte!
-
C++Pete schrieb:
While ist doch das selbe wie if oder lieg das verkehrt?
Bitte hol dir endlich ein C++-Buch! Das grenzt ja schon an Satire. Wenn du so weiter machst, giltst du bald als blurrys (der hiesige Forentroll) neuer Account und bekommst keine Antworten mehr. Du merkst vielleicht jetzt bereits, dass die Qualität der Antworten in deinen Threads nicht sehr hoch ist. Das wird sehr schnell noch viel extremer, wenn jemand wiederholt alle Ratschläge ignoriert und selbst nach Wochen noch Stoff aus den ersten drei Kapiteln jedes Programmierbuchs nicht mal ansatzweise verstanden hat. Denn entweder ist der Fragesteller dann zu faul zum Lernen, zu dumm zum Lernen oder er stellt sich dumm. In allen Fällen lohnt eine Antwort nicht und man hat allenfalls noch seinen Spaß mit Nonsensantworten.
P.S.: Dies ist keine Drohung, sondern ein Hinweis. Internetforen sind nun einmal so. Man bekommt tolle, schnelle Hilfe, wenn man sich an die Regeln hält. Aber wehe, man wird aufgrund des eigenen Verhaltens ausgestoßen. Siehe:
http://www.tty1.net/smart-questions_de.htmlTrotzdem haben Hacker den Ruf, auf einfache Fragen mit Feindseligkeit und Arroganz zu reagieren. Scheinbar sind wir grob zu Neulingen und nicht Eingeweihten. Das ist aber nicht wirklich der Fall.
Wir verhalten uns allerdings (und das soll keine Entschuldigung sein) feindselig Leuten gegenüber, die nicht willens zu sein scheinen, selbst zu denken und ihre Hausaufgaben zu machen, bevor sie ihre Fragen stellen. Solche Menschen sind ein Fass ohne Boden, sie nehmen, ohne etwas zurück zu geben und verbrauchen Zeit, die mit interessanteren Fragen und Personen, die eher eine Antwort verdient hätten, besser verwendet wäre. Wir nennen solche Menschen "Loser" (manchmal als "luser" geschrieben, oder im deutschsprachigen Raum DAUs, Dümmste Anzunehmende User).
P.P.S.: Falls du ein Troll bist, wirst du obigen Hinweis natürlich ignorieren
. Aber wenn du alles, was du bisher geschrieben hast ernst meinst, dann ist dies der wohl deutlichste Hinweis, den du noch bekommen wirst. Wenn dir so direkt gesagt wird, dass du selber mehr leisten muss, noch dazu mehrmals in mehreren Threads, dann stimmt da etwas nicht auf deiner Seite.
-
Vielen Dank für deine höfliche und direkte Antwort :). Ich weis das zu schätzen ;).
-
SeppJ schrieb:
Wenn du so weiter machst, giltst du bald als blurrys (der hiesige Forentroll) neuer Account und bekommst keine Antworten mehr.
Glücklicherweise versucht sich C++Pete gerade an einer Abschlussarbeit, was für uns bedeutet, dass sich das Problem in ein paar Monaten von selbst erledigt.
-
Bashar schrieb:
SeppJ schrieb:
Wenn du so weiter machst, giltst du bald als blurrys (der hiesige Forentroll) neuer Account und bekommst keine Antworten mehr.
Glücklicherweise versucht sich C++Pete gerade an einer Abschlussarbeit, was für uns bedeutet, dass sich das Problem in ein paar Monaten von selbst erledigt.
blurry hat angeblich dieses Semester einen Bachelor gemacht und ist nun schlimmer und planloser denn je, da ihm wohl erfolgreich eingeredet wurde, einen Master zu versuchen. Naja, immerhin besser als dass er mit Problemen zu "echtem" Code aus dem Berufsleben kommt.

-
Und schon wieder die üblichen Verdächtigen. Die Erfahrung von ein paar tausend Beiträgen bringt ja nun auch nicht jeder mit. Was ist daran so schwer mit verständlich zu erklären was der Unerschied zwischen rlse und if ist. Aus den Büchern werd ich nicht schlau, das ist alles ziemlich umständlich beschrieben.
-
https://translate.google.de/?hl=de&tab=wT#en/de/if
https://translate.google.de/?hl=de&tab=wT#en/de/else
-
C++Pete schrieb:
Und schon wieder die üblichen Verdächtigen. Die Erfahrung von ein paar tausend Beiträgen bringt ja nun auch nicht jeder mit. Was ist daran so schwer mit verständlich zu erklären was der Unerschied zwischen rlse und if ist. Aus den Büchern werd ich nicht schlau, das ist alles ziemlich umständlich beschrieben.
Wenn Du while-Schleifen nicht anhand von Büchern verstehen kannst, ist Programmieren nichts für Dich.
Ich glaube aber eher an Troll.
-
C++Pete schrieb:
Und schon wieder die üblichen Verdächtigen. Die Erfahrung von ein paar tausend Beiträgen bringt ja nun auch nicht jeder mit. Was ist daran so schwer mit verständlich zu erklären was der Unerschied zwischen rlse und if ist. Aus den Büchern werd ich nicht schlau, das ist alles ziemlich umständlich beschrieben.
Dagegen sprechen 2 Gründe:
1. Wir wollen nicht (so wirklich): Wie schon oben von mir zitiert:Solche Menschen sind ein Fass ohne Boden, sie nehmen, ohne etwas zurück zu geben und verbrauchen Zeit, die mit interessanteren Fragen und Personen, die eher eine Antwort verdient hätten, besser verwendet wäre.
Wenn wir anfangen, den Unterschied zwischen if und while zu erklären, dann passiert hier im Forum gar nichts mehr.
2. Wir können nicht: Wenn ein Lehrbuch dir solch eine grundlegende Sache nicht beibringen konnte (und besonders, wenn du die dortigen Erklärungen sogar noch für kompliziert hältst) , dann können wir das erst Recht nicht. Wir sind keine Lehrer, wir sind Programmierer. Wir reden die meiste Zeit des Tages mit anderen Programmierern, wir diskutieren Probleme über das Programmieren. Aber jemandem eine einfachere Erklärung über den Unterschied zwischen if und while geben als ein Lehrbuch es kann? Das können wir nicht. Nathan hat's versucht. Du hast es anscheinend nicht einmal wahr genommen. Eine bessere Antwort als Nathans wüsste ich auch nicht wirklich. Genau dafür sind Lehrbücher da. Die sind von Leuten gemacht, die Programmieren und Lehren können.P.S.: lolalter triffts. Programmieren ist eben nichts für manche Leute. Oder du veräppelst uns. Wie schon gesagt, wird es nicht mehr lange dauern, bis alle Leute letzteres annehmen. Bei mir ist es auch sehr bald soweit.
-
C++Pete schrieb:
Was ist daran so schwer mit verständlich zu erklären was der Unerschied zwischen rlse und if ist.
Das kann ich dir beantworten: Ich weiß nicht, was rlse sein soll. Könnte else heißen. Allerdings ging es in dem Thread bisher um while, nicht um else. Ich weiß also nicht, was eigentlich deine Frage ist.
Und so geht das bei dir IMMER. Die ganze Zeit machen wir nichts anderes als rumraten, was du eigentlich meinst. Dazu bist du meistens unkooperativ (welcher Hohn, du willst doch was von uns!) und antwortest nicht auf Nachfragen. Da verlier ich irgendwann die Lust.
BTW, die "üblichen Verdächtigen" sind die, die sich überhaupt noch mit deinen Fragen abgeben.
-
C++Pete schrieb:
Und schon wieder die üblichen Verdächtigen. Die Erfahrung von ein paar tausend Beiträgen bringt ja nun auch nicht jeder mit. Was ist daran so schwer mit verständlich zu erklären was der Unerschied zwischen rlse und if ist.
Nix.
Nur interessiert es keinen es dir zu erklären, weil du das selbst hinbekommen musst. Wobei es sein könnte dass du dir dazu erstmal Grundlagen anlesen musst, wie was Variablen überhaupt sind, was Ausdrücke sind, was == im Vergleich zu = macht etc. Bzw. wie ein Computerprogramm überhaupt funktioniert.
Aber auch das ist deine Aufgabe, nicht unsere.
Wenn du das nicht alleine hinbekommst, dann such dir besser ein anderes Hobby/nen anderen Job.
Aus den Büchern werd ich nicht schlau, das ist alles ziemlich umständlich beschrieben.
Mhm. Damit bestätigst du bloss unseren Verdacht dass du nichtmal ansatzweise die Grundlagen beherrscht.
-
SeppJ schrieb:
C++Pete schrieb:
Wieso ein schlechtes Klassendesign?
Weil dynamic_cast nötig.
Naja weiss nicht ob es "nötig" ist.
Er castet nen ARM* in einen ARM* ...Und ich sehe auch kein Klassendesign hier

-
Die Bombe ist explodiert...greeting @ Markus

@hustbaer: Hast du gesagt ich bin dummmm?!Glaubst du etwa ich bin dumm, oder was?