Fragen zur Machbarkeit in C/C++

Hallo Duda,

alles zu installieren kann definitiv deinem System nicht schaden. Folgendes sollte aber schon genügen:
mingw32-base ........................bin..A Basic MinGW Installation
mingw32-gcc-g++ ..............bin..The GNU C++ Compiler
Du kannst nicht einfach geschweifte Klammern setzen, ohne zu verstehen, was sie bewirken. In C und C++ bewirken sie einen neuen Gültigkeitsbereich ("scope"), deswegen kannst du auf innerhalb des Blockes deklarierte Variablen danach außerhalb des Blockes auch nicht zugreifen (zumindest für lokale Variablen gilt dies).
Merke: Geschweifte Klammern sind keine Dekoration. Nutze Kommentare oder packe Passagen gleich in neue wiederverwendbare Funktionen, um den Code übersichtlich zu halten.

muß ich jetzt zum Berechnen den String aufrufen wie folgt?
Die Frage verstehe ich nicht. Einen String kannst du an sich doch gar nicht aufrufen. Nur Funktionen sind aufrufbar (und ein paar andere Dinge).

hier drüber habe ich mit der 17 ein Problem,
was soll hier beziffert werden die Anzahl Zeichen oder die Positionen ?
Die maximale Anzahl an Zeichen, die in den String (inkl. '\n') geschrieben werden.

Die Funktion cin.get() ist bereits in der Datei iostream (die du am Anfang per #include einbettest) enthalten. Was willst du da erneut deklarieren/definieren?
 
Hallo ComFreek,
ja wie immer danke als Erstes. Muß ganz einfach sein, denn Du gibst ja immer recht gute Ratschläge und Hinweise. Ja das mit dem MinGW habe ich noch für eine Weile verschoben. Habe mittlerweile das Buch Visual C++ 2010 erhalten und durchgeblättert, wegen meiner Express-Version, bei der ich die Toolbox mit den Allgemeinen Steuerelementen vermisse.
Bei dem Buch war auch eine DVD mit der Express-Version dabei. Habe mal die Installierte entfernt und die aus dem Buch installiert, aber auch hier habe ich die Toolbox nicht vorgefunden. Habe noch auf den Erweiterungsmodus umgeschaltet, aber auch das hat nicht geholfen.
Ich habe zwar unter "Extras" ein "Toolelemente auswählen" gefunden, worin dann diverse Dateien zu sehen sind, teilweise schon mit Häkchen, aber da ist noch eine Zeile mit Filter oder so, damit weiß ich nichts anzufangen. Naja vielleicht meldet sich noch jemand, der seine Toolbox schonmal aktiviert hat. Doch zurück zu Deinem Schreiben.
Dein Merke, ist gefühlsmäßig eine kleine Kopfnuss(wie in der TV-Serie Navi CIS). Ja, Du hast ja recht, ich weiß das auch wirklich, aber ich wollte nur vorbeugen und darauf hinweisen, daß ich keine geschweiften Klammern gesetzt habe, damit ich keine Kopfnuss abkriege. :)
Sehr wichtig zum Öffnen und Abschliessen von Bereichen/Reichweiten, auch bei der Verschachtelung von Programmteilen/Anweisungen etc..
Auch meine Frage nach den Werten einer in einem solchen Bereich angelegten Variableb, hat sich darauf bezogen. Mein Wortwahl mit "aufrufen", war wieder mal miserabel, denn ich hätte besser "schreiben"
geschrieben. Naja nun ist es vorbei und ich habe mein Fett weg. :)
Ja das mit der 17, da kann ich Deine Erklärung gut gebrauchen.
Zu dem "cin.get" war auch nur eine Frage, ob der Funktionskopf irgendwo besteht oder ob man da noch was selbst schreiben muß. He, ich bin ein Grünschnabel und habe die Programmierer-Fachsprache noch nicht drauf.
Aber ich lerne durch Dich und den Anderen.
Ansonsten bitte ich Dich oder einen Anderen, daß man mir vielleicht sagt/schreibt, was ich ändern soll, damit ich das Programm später zum Laufen kriege, weil es kommen noch 3 weitere Strings, welche auch berechnet werden. Da muß ich doch die Summen-Variablen irgendwo lassen, wenn ich keinen Zugriff auf Werte innerhalb eines durchlaufendem
Scope habe. Müssen die Variablen schon zur Laufzeit außerhalb des Scope
angelegt sein und ihre Werte haben, bevor Scope wieder abgegrenzt ist.
Ich weiss, wieder blöd formuliert, aber ich kann es nicht besser.

Viele Grüsse

Duda
 
Hallo Duda,

soweit ich weiß kannst du mit keiner VS Express-Version grafische Oberflächen designen (lediglich Blend für Win8-Apps mit HTML würde da eine Ausnahme bilden).
Obiges ist falsch. Siehe sheel's Beitrag unten.

Am einfachsten (und stilistisch am schlechtesten) ist es, alle Variablen in einen Gültigkeitsbereich zu packen, sprich:
C++:
int main() {
  int a;
  // ...
  // Greife auf a zu
  int b = a + c;
}

Deswegen meine Empfehlung: Teile deinen Code in saubere Funktionen auf, die du dann in main() aufrufen kannst.
 
Zuletzt bearbeitet:
Hallo Ihr Zwei,

werdet Euch wohl nicht an die Köppe kriegen. :)
Ich möchte so wie immer erstmal mein Danke los werden. Danke an Euch beide. Habe in der Express-Version nun doch noch alles gefunden, was ich gesucht habe. Wie soll es auch anderst sein, man muß erstmal ein Formular anlegen, bevor alle Tools und Elemente in einer Spalte erscheinen, woraus man dann auswählen kann, was man mit der Maus auf das Formular(Form) ziehen kann. Es funktioniert und ich bin happy. Muß mich natürlich erst noch vertraut machen mit dem Express, aber wird schon, sehe da keine all zu grossen Probleme. Weil ich das Buch dazu habe, wird es für mich wesentlich einfacher mich damit zurecht zu finden. Werde wohl nicht alle die von mir benötigten Elemente auf eine Seite kriegen, deshalb werde ich das auf mehrere TabControls, was so ähnlich wie ein Karteikasten aussieht und an leere Exelarbeitsblätter erinnert, nur das die Blätter nicht unten sondern oben ausgewählt werden. Naja da kann aussuchen wie viel man benötigt und das geht alles mit der Maus. Da werde ich das ganze Programm später auf 4 oder 5 dieser Karteikarten/Arbeitsblätter verteilen.
Damit ist quasi ein Körper mit Skelett geschaffen, welchem nur noch die Sehnen und die Muskulatur fehlen, welche dann die C++-Anweisungen sind, welche man dann zu jedem Element noch schreiben muß. Diese selbst eingefügten Programmteile werden dann über Einträge in den Eigenschaften der Elemente bei einem Ereignis aufgerufen. Dann wird das nächste Ereignis gewartet und so weiter und so Ford oder Audi. :) :) :)
Mal wieder was zum Lächeln, aber ich wollte für Audi eigentlich Adler schreiben, aber diese Automarke ist bei Jüngeren meist unbekannt. Aber dafür sind viele neue Sachen bei Älteren wiederum unbekannt und so mit ist für Jeden etwas unbekannt. Hallo ComFreek, muß dem sheel wohl recht geben, es läßt sich da doch auch einiges mit Grafiken machen.

Ich habe mich sehr über Euere Post gefreut.

Viele Grüsse

Dude
 
Hallo Cromon, ComFreek,, sheel, Janesta und alle Leser !

Habe eine kurze Zeit nichts von mir hören/lesen lassen, weil ich mich ausgiebig mit "Visual C++ 2010 Express" beschäftigt habe. Auch wenn da "Visual" an erster Stelle steht, so spielt das Visual nur die zweite Geigen, wie man so schön sagt. Die erste Geige spielt immernoch "C++", auch wenn da in noch weitere Element der .Net Framework-Bibliothek mit einbezogen werden können, was das ganze wesentlich vereinfacht, aber dann nicht von jedem Compiler verstanden wird. Es muß dann wohl der im Visual-System integrierte Compiler sein, welcher den IL-Code umsetzt. Also man ist dann an das Microsoft-System gebunden. Aber das ist mir erstmal egal, denn ich lerne mit Hilfe des Buches wie Window-Fenster-Programme innerhalb eines "C++ Progammes" erstellt werden und ablaufen. Also ich muß schon sagen, das Buch von Dirk Luis ist einfach gut und verständlich geschrieben.
Ich habe nun schon einige Formulare entworfen und allerhand ausprobiert.
Nun geht es wieder ans Eingemachte, damit ist "C++" gemeint. Denn wenn dann mal so ein Fenster-Formular-Code fertig ist, was der Designer von Visual ruckzuck erledigt, dann muß da allerdings noch der Programmkopf nach den "C++ Vorschriften" davor gesetzt werden. Denn
ohne diverse "#include ..........." und die "int main( )" läuft da nähmlich nichts. Alles andere ist mehr oder weniger alles mit der Maus und den notwendigen Klick zu machen. Bis auf die Anweisungen, welche manuell in das Window-Programm-Gerüst an den entsprechenden Stellen, wo ein Klick-Ereignis stattgefunden hat, über die Konsole eingetragen werden müssen. Hierzu habe ich schon einige Überlegungen angestellt, Weil ich auch hier über die Window-Oberfläche was eingeben möchte. Also ich möchte Buchstaben-Schaltflächen auf dem Formular, welche ich anklicke, was zu einem Ereignis führt, welchem eine Anweisung im Code folgt, worin dann ein entsprechender Buchstabe in einen String geschrieben wird. Da der String ja aus mehreren Zeichen bestehen wird, deshalb werde ich eine nicht statische Methode der String-Klasse benutzen. Mit der Hilfe von "int Insert(startPos, anderer_str) " kann man einen anderen Strings in einen vorhandenem String, an bestimmter Position einfügen.
Hier das Beispiel, welches mich durch folgenden Wortlaut inspiriert hat:
"Fügt den String "str2" an der Position "startPos" in den String "str1" ein.
C++:
int Insert

String ^str = "123456";
str = str->Insert(3,"abcd");

// demnach muß str1 danach "123abcd456" enthalten
// Hinweis: Das ^ vor str, zeigt auf die  .NET-Bibliothek/Klasse, System
// oder so, also das Insert ist wohl nicht aus dem klassischem C++
Ich denke auf diese Art und Weise muß sich auch ein ganzer String
eingeben lassen, in meinem Kopf ist es möglich, wobei ich ich aber noch Probleme mit der Position 0 habe, denn man kann ja nur die Position benennen, ab welche eingefügt werden soll. Ich denke vor der Null gibt es nichts im String. In der Mathematik schon, denn da geht es in Minus. Da bleibt mir nur sowas wie das "Ersetze die Position 0 mit dem ausgewähltem Zeichen, Damit die erste Position zustande kommt, danach würde das Insert den Rest machen. Auch wenn es nur einzelne Zeichen jeweils sind. Ist im Moment erstmal nur in Meinem Kopf. Muß0 noch so eine Ersetze-Funktion ausfindig machen.
So nun mache ich mal wieder Schluß und bis bald.

Viele Grüsse

Duda
 
Zuletzt bearbeitet von einem Moderator:
Hallo,

wenn du doch C++ machen willst, warum nutzt du dann nicht C++-Funktionen? Wie dem auch sei, schau mal hier auf der Seite: http://www.cplusplus.com/reference/string/string/

Da solltest du genug Funktionen finden, die du nutzen kannst. Eben auch insert oder replace.
Generell solltest du die Seite für Funktionen als Nachschlagewerk nutzen, oder alternativ andere.

Grüße,
Jennesta
 
Hallo Jennesta,

danke für Dein Feedback. Ja Du hast es soweit ganz gut erkannt, nur daß ich nicht "C++" machen will, da liegst Du daneben. Was ich geschrieben habe, solle ja auch nur so verstanden werden, daß auch bei "Visual" kein Weg an "C++" vorbeigeht, dabei ist es im Grunde egal, welches von den beiden möglichen C++, damit meine ich das klassische C++ oder das C++/CLI, wobei das letztere nur geringfügig vom Klassischem abweicht.
Aber dafür gibt es eine Syntax-Referenz und ich kann da die Alternative zum Klassischem entnehmen, wenn man es will oder muß. Wie gesagt, Beides ist möglich, aber ich weiß nicht ob es immer zusammen geht,
denn unter C++/GLI sind keine Headerdateien möglich und als erste Zeile
im Programm steht kein "#include .........." und kein "using namespace std;"
sondern nur "using namespace System;" und das klassische "int main( )" sieht wie folgt aus: "int main(array<String ^> ^args)". Natürlich werde ich soweit es möglich ist das klassische C++ benutzen. Denn "insert" und "replace" gibt es ja hierbei auch, der einzige Unterschied ist, daß die Worte im System mit einem Großbuchstaben eginnen(Insert, Replace).
Danke für Deinen Link. Werde natürlich bei Bedarf darauf zurückgreifen.
Doch zur Zeit sind die mir vorliegenden Bücher noch ausreichend. Wobei mir eigentlich Beispielzeilen fehlen, wo was Ähnliches programmiert ist
und ich erkennen kann was passiert. Meine Anfängerbücher zeigen nur die Grundlagen. Werde wohl noch was an Büchern für Fortgeschrittene anschaffen müssen. Weil ich brauche was auf Papier, was ich immer mal wieder nachblättern kann. Dazu schreibe ich mir auf, was interessiert, die Kapitelordnungszahlen und die Buchseiten auf. Dann bin ich schneller als mit dem PC/Internet. Wobei ich sagen muß ich muß ich habe eine lahme DSL-Leitung, weil ich außerhalb der Stadt wohne und der letzte Knoten sehr weit entfernt ist. Doch wieder zurück zu Visual. Ich möchte irgendwie meine Ideen verwirklichen, so auch das Eingeben eines Strings mit dem Cursor und einem Klick(für mich schon mal gut, dann muß ich hinschauen, wo der Cursor steht bevor ich klicke, vielleicht kommt es dabei nicht zu meinen Flüchtigkeitsfehlern, denn das wäre verheerend für die Ergebnisse der im Programm durchgeführten Berechnungen. Stell Dir vor, ich habe in einem meiner C++-Bücher nachgeschaut, unter insert und war überrascht, denn nun dachte ich, daß das von mir im letzten Schreiben angeführte Problem mit der Position 0, ja gar kein Problem ist, denn da stand:
"string insert(int pos, string str)", als Beschreibung stand dabei:
"Fügt den String str vor der Position pos in den aktuellen String ein.
Na da dachte ich: "Super, das ist es was ich gesucht habe. Doch nach dem näherem Begutachten der Code-Zeilen, stellte sich heraus, daß auch hier ab der Position gemeint war, also nichts mit vor. Es kann sich nur um einen Schreibfehler im Buch handeln. Und ich hatte mich schon gefreut. :) :)
So nun mache ich mal Schluß, also machs gut und bis bald mal wieder.

Grüsse

Duda
 
Hi,

nur daß ich nicht "C++" machen will, da liegst Du daneben.
Dann solltet du die Winforms schnell wieder vergessen.
Auch wenn sie sehr bequem zu verwenden sind...
dabei ist es im Grunde egal, welches von den beiden möglichen C++, damit meine ich das klassische C++ oder das C++/CLI, wobei das letztere nur geringfügig vom Klassischem abweicht. Aber dafür gibt es eine Syntax-Referenz und ich kann da die Alternative zum Klassischem entnehmen, wenn man es will oder muß.
...
Natürlich werde ich soweit es möglich ist das klassische C++ benutzen. Denn "insert" und "replace" gibt es ja hierbei auch, der einzige Unterschied ist, daß die Worte im System mit einem Großbuchstaben eginnen(Insert, Replace).
...weil das eben überhaupt nicht stimmt.
C++/CLI komplett in .NET-Richtung ist nicht nur "geringfügig" anders,
sondern eigentlich etwas Eigenständiges, dass nur C++ im Namen hat
und (umständlich) damit mischbar ist.
 
Hallo sheel,

so wie üblich, muß ich Dir natürlich recht geben, es ist so wie Du geschrieben hast. Meine Vergleich hinkt etwas, weil ich mich nur auf die Anfangsbuchstaben bei den beiden Methoden bezogen habe. Natürlich ist es nur eine Anlehnung an das klassische C++. Vieles ist anderst benannt,
bzw. wird anderst geschrieben, es ist aber meistens eine ähnliche Arbeitsweise. Wenn ich Vieles geschrieben habe, dann meine ich das Meiste, aber vieles hat den gleichen Sinn oder Zweck.
Es ist ja auch so, daß ich es mehr aus Bequemlichkeit mit Visual zuerst versuche, weil ich damit auch Erfolgserlebnisse habe, welche ich brauche um dran zu bleiben, wie man so schön sagt. Daneben probiere ich auch mit C++ einige Dinge aus. Wenn ich da Wege gefunden habe, womit meine Ideen umsetzen kann, dann versuche ich es auf C++/CLI zu übertragen. Ich kann gefühlsmäßig aus Deinem Schreiben entnehmen, daß Du irgendwie eine leichte Abneigung gegenüber dem "C++/CLI" hast.
Was ich als nichts Schlimmes empfinde, denn schließlich bist Du ja mit all Deinem Wissen über das klassische C++, auch ein echter Kenner und ein Anhänger dieser Programmiersprache. Nur ich habe da leider noch nicht so den Durchblick und versuche es erstmal auf meine Art. Wenn ich dabei an irgendwelche Grenzen stoße, dann werde ich wohl doch noch das MinGW ausprobieren, weil da kann ich dann ja auch das, was ich bis jetzt über C++ weiß, gut gebrauchen. Ich weiche da immernoch aus, weil ich da keine gute Beschreibungen in Deutsch finde. Aber mal sehen, wie weit ich mit Visual komme, Du hörts oder liest auf jeden Fall von mir.

Machs gut

Duda
 
Zurück