Zum Inhalt springen

Klotzkopp

Mitglieder
  • Gesamte Inhalte

    9912
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    3

Alle Inhalte von Klotzkopp

  1. Reguläre Ausdrücke halte ich hier für Overkill, zumal das in C nicht ohne eine externe Bibliothek geht (C++ kann das immerhin seit TR1). Ich würde einfach jedes Zeichen des eingelesenen Arrays mit isdigit prüfen.
  2. C oder C++?
  3. Du hast aber den Hinweis gelesen?
  4. Ich habe den Eindruck, dass du keine Ahnung hast, was du da eigentlich machst. Was willst du mit strcmp? Man kann solche Aufgaben nicht ohne gewisse Grundkenntnisse lösen, und ich vermute, genau diese Grundkenntnisse fehlen dir. Du kannst übrigens, wenn du statt is_sorted ein umgekehrtes Prädikat (is_not_sorted) benutzt, die Ausgabe aller alphabetisch sortierten Wörter mit zwei Zeilen Code realisieren: std::ofstream out("output.txt"); std::remove_copy_if( vec.begin(), vec.end(), std::ostream_iterator<std::string>(out, "\n"), is_not_sorted ); [/code]
  5. Alt Gr + E ist die richtige Antwort, wenn dein Quellcodeeditor dieselbe Zeichencodierung benutzt wie die Konsole, in der du dein Programm ausführst. Unter Linux beispielsweise, wo eigentlich alles von vornherein als UTF-8 codiert ist, funktioniert das prima. Wie gesagt, die Antwort war korrekt. Allerdings ist deine Ausdruckweise unangebracht. Reiß dich bitte zusammen. Der ASCII-Zeichensatz enthält das Euro-Zeichen nicht. Auch die Standard-Codepage der Windows-Eingabeaufforderung (Codepage 850) enthält das Zeichen nicht. Du kannst allerdings mit chcp die Codepage der Eingabeaufforderung ändern, beispielsweise auf 1252, das ist vermutlich die Codierung, die dein Editor benutzt.
  6. Ein Konto reicht ja auch nicht, wenn du drei brauchst. Ein Array wäre eine Möglichkeit. Eine Schleife ist auch nicht besonders sinnvoll, wenn du sowieso bei jedem Durchlauf etwas anderes machst. Loop-switch sequence - Wikipedia, the free encyclopedia
  7. bool is_sorted( string const& s ) { string c = s; // Kopie von s erstellen sort( c.begin(), c.end() ); // Kopie sortieren return c == s; // Vergleichen }[/code] Ist nicht besonders effizient, aber erfüllt seinen Zweck. Alternativ kannst du auch Element für Element durchgehen und prüfen, ob es kleiner oder gleich seinem Nachfolger ist.
  8. Was ist denn ein "Edit"? Kann es sein, dass du ein Framework für grafische Benutzeroberflächen benutzt?
  9. Mir ist der Anwendungsfall nicht ganz klar. Soll der Bot lokal mit einem einzigen Benutzer kommunizieren, oder er sich mit einem Chat-Netzwerk verbinden und von mehreren Usern "bedient" werden können?
  10. Hilfe beim Schreiben von Schadsoftware gibt's hier nicht. Das letzte, was wir brauchen, ist noch ein ahnungsloses Skript-Kiddie, das mit den Schadsoftware-Bauklötzchen spielt. Wer so was schreiben will, soll sich die nötigen Fähigkeiten selbst aneignen. Wenn man diese Fähigkeiten dann hat, erkennt man hoffentlich von selbst, wie schwachsinnig solche Programme sind.
  11. cout ist ein Stream. Streams haben eine andere Schnittstelle als Strings. Aber dafür gibt's Stringstreams Dass die ATL Microsoft-spezifisch und damit nicht portierbar ist.
  12. _lastmodify ist ein tm, Timereturn ist ein tm*, das passt einfach nicht. Du könntest Timereturn dereferenzieren, aber der Code ist sowieso viel zu kompliziert, und ein Speicherleck hast du auch drin (new ohne delete). void setLastModify() { time_t Zeitstempel = time(0); localtime_s(&_lastmodify ,&Zeitstempel); } [/code]
  13. Klotzkopp

    global Vector

    Wie dein Code jetzt aussieht, weiß ich aber dadurch immer noch nicht. Static dient einem bestimmten Zweck. Die Art, wie du es benutzt, ist nicht gut. Du machst irgendwelche Variablen static, extern oder global, um damit deine hausgemachten Designprobleme zu lösen. Das ist nicht Sinn der Sache. Ob eine Variable static oder nicht ist, oder meinetwegen auch global, sollte das Ergebnis einer Designentscheidung sein, und nicht Lösung für ein Zugriffsproblem, verursacht durch nicht erfolgtes Design. Das ist, als ob du beim Hausbau alle Steckdosen und Wasseranschlüsse im Keller angebracht hast, und jetzt Unmengen an Verlängerungskabeln und Schläuchen quer durch das ganze Haus ziehst, wo du eben gerade Strom oder Wasser brauchst. Kabel und Schläuche an sich sind nichts schlechtes, aber du behandelst damit nur die Symptome deines Problems. Ganz ehrlich, die einzige richtige Lösung wäre IMHO Wegwerfen-Neumachen, aber diesmal mit einem ordentlichen objektorientierten Design. Du solltest dir diese Vorgehensweise abgewöhnen.
  14. Nein, damit übergibst du die Adresse von referenz, das ist ein Zeiger. Auf der Seite des Aufrufers sieht ein Referenzparameter genauso aus wie ein Value-Parameter. Indem du dem Connect-Konstruktor einen CInternetSession&-Parameter verpasst.
  15. Um zu prüfen, ob eine Sequenz einem Sortierkriterium genügt, kann man eine Kopie der Sequenz machen, diese sortieren, und prüfen, ob das Ergebnis und die Originalsequenz gleich sind.
  16. Ich würde sagen, alle Level, die eine SYSTEM_POWER_POLICY-Struktur rausgeben, könnten interessant sein. Ist dir denn klar, dass sich diese Zustände jederzeit ändern können, z.B. wenn jemand ein Netzteil anschließt oder entfernt?
  17. Klotzkopp

    global Vector

    Damit ein Member unabhängig von Instanzen der Klasse existiert, benutzt man static. dateinamen_xar kann nicht gleichzeitig extern und Member sein, der Speicherklassenspezifizierer extern ist für Member nicht erlaubt. Es ergibt auch keinen Sinn. Ich weiß nicht, wo du extern hingeschrieben hast, aber solange dateinamen_xar ein nichtstatischer Member von transfer_data ist, gibt es kein dateinamen_xar ohne transfer_data. Zu wissen, wie dein Code jetzt aussieht, würde weiterhelfen. Die letzte Meldung war "Funktioniert jetzt!", aber das stimmt ja offensichtlich nicht.
  18. Klotzkopp

    global Vector

    Was du in anderen Sourcedateien änderst, hat darauf gar keinen Einfluss. Du brauchst die Deklaration von dateinamen_xar, d.h. eine Includedirektive für den Header, der diese enthält. Und wenn dateinamen_xar immer noch ein Member von transfer_data ist, brauchst du eine Instanz dieser Klasse.
  19. Deswegen sollte man sich über Designfragen ja auch vorher Gedanken machen, und nicht einfach drauf los frickeln. Vermutlich reicht es aus, wenn du deine Session als lokale Variable in main erstellst, und dort, wo du sie brauchst, eine Referenz darauf übergibst.
  20. Es zeigt zumindest, dass das Problem im Destruktor von CInternetSession auftritt. Die MSDN Library schreibt dazu (CInternetSession Class)
  21. Dann läuft das Programm nicht mehr, d.h. du stehst mit dem Debugger nicht an der Stelle, an der der Fehler auftritt. Alt+7, nicht Alt+F7.
  22. Debug > Windows > Call Stack Oder Alt+7. Aber vorher zeigt er doch diese Fehlermeldung an, oder?
  23. Zuerst solltest du klären, ob das wirklich die Ursache des Problems ist. Wirf mal den Debugger an, und zeig den Callstack zum Zeitpunkt des Fehlers.
  24. Das ist jetzt der Punkt, der eigentlich vorher hätte passieren sollen: Das Design. Mach dir klar, welche Aufgaben, Lebenszeiten, Beziehungen und Besitzverhältnisse die einzelnen Klassen und Objekte haben.
  25. Der Fehler rührt vermutlich daher, dass session erst dann zerstört wird, wenn es dafür eigentlich zu spät ist. Das kommt dabei raus, wenn man statt eines ordentlichen Designs globale Variablen benutzt. Delete darfst du auch nur mit Objekten machen, die du mit new angelegt hast.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...