Rechnen mit Strings????
-
Was heist neues Standart Library?? Ich hab MS VC++ 6.0, zwar Autoren Edition *Fluch* aber das macht ja nix.
-
du darfst keine Funktionen in anderen Funktionen definieren
du solltest besser lesen, was dir der Compiler sagt
-
Das is toll, hilft mir aber nich weiter, wie muß denn das aussehen, damit es funktioniert??
-
Raven2 schrieb:
Es giebt diesen Befehl also wird er auch benutz. Basta!!
Uhhh ja
, das ist die richtige Einstellung. Wenn du wenigstens auch so mit deinem Hirn verfahren würdest...
-
MaSTaH schrieb:
Raven2 schrieb:
Es giebt diesen Befehl also wird er auch benutz. Basta!!
Uhhh ja
, das ist die richtige Einstellung. Wenn du wenigstens auch so mit deinem Hirn verfahren würdest...
Ich benutze mein hirn, was haben nur alle gegen die goto Befehle?? sind doch sehr nützlich und so gut bin ich im Programmieren nich, also nutze ich den einfachsten Weg dem programm zu sagen was ich will.
-
Manchmal ist er in der Tat nützlich aber du verfällst sofort in den Spaghetticode der goto verpönt gemacht hat. Desweiteren scheinst du nicht zu wissen wofür man for-Schleifen benutzt. Dein Basta! war also vollkommen unangemessen und du solltest nochmal ein gutes C++-Buch zur Hand nehmen. Deinen Code kann kein Schwein lesen und es kostet wirklich Überwindung ihn nachzuvollziehen.
-
Also ich hab ihn gemacht und ich kann ihn logischerweise nachvollziehen, desweiteren steht drunter aber was nacheinander passiert also dürfte es nich zu schwer fallen.
Diese dumme Meldung hab ich jetzt zwar ausgebügelt dafür hab ich aber jetzt ein anderes Problem, wieso weigert sich der Compiler ein Variable long - Variable long zu machen?? (ich hab 2 Strings zu longs gemacht)
-
Zeig mal den Code in dem du das machst.
BTW: Zu deinem Code auf der ersten Seite: Dir ist klar, dass for(;;){...} eine Endlosschleife ist die du sofort mit goto wieder verlässt und man sie besser nicht benutzen sollte nur um sich einen Scope zu schaffen? Mit anderen Worten: Lass das for(;;) weg.
-
Raven2 schrieb:
Das is toll, hilft mir aber nich weiter, wie muß denn das aussehen, damit es funktioniert??
mein Tipp ist lies ein gutes C++ Buch oder Tutorial, so kann man dir einfach nicht weiterhelfen.
http://www.schornboeck.net/ckurs/index.htm
http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html
http://www.volkard.de/vcppkold/inhalt.htmlsollten ein paar Ansätze sein
-
du musst dir echt mal einen besseren fragestyle zulegen. woher sollen wir wissen was du falsch machst, wenn du weder fehler noch code postest. und bevor du wieder dein gesamtes spaghettiprogramm hier reintust:
der fragende sollte ein minimales compilierbares beispiel posten, dass sein problem enthaelt. die meisten probleme loesen sich dann mit einem klatsch vor die stirn von selbst. nur sind viele leute zu faul dazu.
-
OKOK Also ein Minimales Beispiel
Bei dem Hier hab ich mal alle Vergleiche die fehler vorbeugen sollen rausgelöscht:#include <iostream> #include <string> #include <sstream> #include <cstdlib> using namespace std; long anfangsjahr(const std::string &anfangs_jahr) { std::stringstream s(anfangs_jahr); long ret; s >> ret; return ret; } long endjahr(const std::string &end_jahr) { std::stringstream s(end_jahr); long ret; s >> ret; return ret; } int main() { string name;//is in dieser kleinen Variante nicht Benutzt string anfangs_datum; string end_datum; cout<<"Gib bitte das Anfangsdatum ein im Format TT.MM.JJJJ ein. "; cin>>anfangs_datum;//Anfangsdatum cout<<"Hier bitte das Enddatum eingeben. "; cin>>end_datum;//Enddatum string anfangs_jahr;//Definition der strings die die Tage, Monate bzw Jahre aufnehmen string end_jahr; string anfangs_monat; string end_monat; string anfangs_tag; string end_tag; anfangs_jahr = anfangs_datum.substr(6, 4);//Hier bekommen die strings ihren Wert end_jahr = end_datum.substr(6, 4); anfangs_monat = anfangs_datum.substr(3, 2); end_monat = end_datum.substr(3, 2); anfangs_tag = anfangs_datum.substr(0, 2); end_tag = end_datum.substr(0, 2); long jahresdifferenz; jahresdifferenz = endjahr - anfangsjahr;//Hier kommt der Fehler cout<<anfangsjahr<<"-"<<endjahr<<"="<<jahresdifferenz<<endl; return 0; }
Der Fehler is der Hier
error C2296: '-' : Ungültig, da der linke Operand vom Typ 'long (__cdecl *)(const class std::basic_string<char,struct std::char_traits<char>,class std::allocato
r<char> > &)' istHilft euch das jetzt weiter???
-
*ploing*. Du kannst doch einen String nicht einfach in ein long umwandeln. Wir sind hier nicht in irgendeinem Basic. Typen spielen eine Rolle. Deswegen solltest du zum umwandeln atol oder etwas ähnliches wählen...
-
Bei mir Klingelts da nich, so wie ichs hier gemacht habe, das war methode1 von der ersten Seite. Und dieses atol führt bei meinem Compüiler nicht zu gegenliebe.
-
warum hast du die gleiche funktion zweimal? und warum subtrahierst du funktionsnamen? und warum vergisst du das nicht alles und holst dir ein anfaengerbuch?
-
Also das ist total krumm da oben *confused*
-
aha, mastah sieht genauso wenig durch.
-
PeterTheMaster schrieb:
aha, mastah sieht genauso wenig durch.
Bäää, ich dachte das seien Stringvariablen wegen der fehlenden (). Dachte ich könnte das editieren bevor's jemand merkt. Warst schneller!
-
schau dir doch einfach mal die Links an, die ich gepostet habe. Du kannst einfach kein C++ und da bringt es nichts, wenn wir dir irgend welche Tips geben. Lern erstmal C++ zumindest ein paar Grundlagen!
-
Also ein paar Grundlagen kann ich schon, aber nur Grundlagen bringen mir wenig also programmiere ich immer mal was worauf ich lust habe, und wenn ich nichtmehr weiterkomme und mir auch Tutorials und Bücher (hab ich schon genug um drin schwimmen zu können) nicht weiterhelfen dann frage ich eben. Und sowas hab ich da nirgendst gelesen, also wäre jemand so nett und würde mir die sache mal so sagen das es verständlich ist???
-
du sollst in den buechern nicht schwimmen sonders sie lesen. und das hast du definitiv nicht. denn du kannst mir nicht erzaehlen, dass funktionsdefinitionen und aufrufe dort nicht erklaert werden.