Zum Inhalt springen

Klotzkopp

Mitglieder
  • Gesamte Inhalte

    9912
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    3

Alle Inhalte von Klotzkopp

  1. Was meinst du mit "Mainklasse"? main ist in C++ eine freie Funktion. Wenn du da ein bestimmtes Applikations-Framework benutzt, gibt es vielleicht einen Weg, an diese Instanz ranzukommen.
  2. Das sieht mir danach aus, als ob diese Installationsdatei nicht in Ordnung wäre. Nochmal runterladen?
  3. Nein, es gibt nur eine 32-Bit-Version. Wie lautet die Fehlermeldung denn genau?
  4. Aktivier das Notepad-Fenster, und schick dann die simulierten Tastatureingaben ab.
  5. Klotzkopp

    Zufallssystem

    Grundsätzlich solltest du srand nur einmal aufrufen. Damit kann es dir aber immer noch passieren, dass mehrmals dasselbe Ergebnis herauskommt, genauso, wie du zweimal nacheinander eine 6 würfeln kannst. Wenn du wirklich ein Kartenspiel mit festen Werten simulieren willst, wäre der bessere Ansatz, vorher ein Array mit den gültigen Werten für karte anzulegen, durchzumischen (in C++ gibt es dafür die Funktion std::random_shuffle) und dann daraus nach und nach die Werte zu holen.
  6. Hast die Grundlagen wohl doch noch nicht so gut drauf, wie du meinst. Du scheinst ja nicht zu wissen, was dein eigener Code tut. Du öffnest (irgendein) CD-Laufwerk Du setzt das Zeitformat für CD-Audio auf Millisekunden Du wartest 14 Millisekunden Du wartest auf eine Tastatureingabe Wie du darauf kommst, dass das die gewünschte Wirkung haben soll, ist mir schleierhaft.
  7. Lass bitte die Finger von diesen Scherzprogrammen und lerne statt dessen ordentlich die Grundlagen. Ich hatte dir das auch schon mal in einer PN geschrieben, aber die hast du ja nicht gelesen.
  8. Dass du jetzt deine Strukturen an die Funktion übergibst, die Funktion aber immer noch double** erwartet.
  9. Na sicher. Das sollte der Compiler nicht akzeptieren. Du deklarierst hier eine Referenz, aber die musst du initialisieren, d.h. sie muss auf ein bestehendes Matrix-Objekt verweisen. Eine Referenz ergibt hier aber sowieso keinen Sinn.
  10. Rückst du deinen Code eigentlich nicht ein? Ich hätte ja Code-Tags eingefügt, damit die Einrückung nicht verloren geht, aber da war nichts, was verloren gehen könnte. Und *(matC+i) ist eine etwas umständliche Schreibweise für matC. Ich denke, mit konsequenter Verwendung der Arrayschreibweise wäre dein Code um einiges übersichtlicher. Ich glaube übrigens nicht, dass die Umstellung von int auf double das grundsätzliche Problem gelöst hat, dass die Werte in matC nicht initialisiert sind. Wenn du mit new ein double-Array anforderst, stehen da irgendwelche Werte drin. Bei matA und matB ist da ja noch kein Problem, weil du die Werte direkt aus den Benutzereingaben setzt. Aber bei matC addierst du nur auf die uninitialiserten Werte drauf. Der Funktionsaufruf würde in etwa so aussehen: multi(matA, matB, matC, n, m, l); Einen Rückgabewert braucht die Funktion nicht, das Ergebnis steht ja in matC. Der Rückgabetyp könnte also void sein.
  11. Die Werte in matC sind alle nicht initialisiert.
  12. Es gibt leider keine Funktion, die mittels Gedankenlesen herausfindet, von welchem Audiogerät in welchem Audioformat in welche Datei du aufnehmen willst. Gewöhne dich daran, dass bestimmte Aufgaben, die für den Benutzer ganz einfache oder alltägliche Vorgänge sind, in Programmform sehr sehr aufwändig sein können. Du kannst froh sein, dass dir bei diesem Problem das MCI-Subsystem den größten Teil der Arbeit abnimmt. Mit DirectSound könnte man das auch machen, aber der Code wird ähnlich lang sein, wenn nicht gar länger. Es wird seinen Grund haben, dass das Audiorecorder-Tool von Windows, das ja im Grunde nichts weiter tut als das, was du da haben möchtest, über 100 KByte groß ist.
  13. Und man sollte sie nur benutzen, wenn man ganz genau weiß, was man tut. Diese Funktion ist nicht zur Synchronisierung geeignet, oder dazu, einen Thread zu "parken". Man kann damit sehr leicht das ganze Programm zum Hängen bringen. Sie Remarks-Abschnitt in der MSDN-Library-Seite von Thread.Suspend. Ganz grob gesagt, sollte man von Thread.Suspend die Finger lassen, wenn man nicht gerade einen Debugger schreibt.
  14. Es gibt nicht "den Code". Code hat immer einen Kontext. Keinen Code, den dir hier jemand hinschreibt, kannst du einfach so in dein Programm übernehmen, ohne dass Anpassungen nötig sind. Du musst zumindest die Struktur des Codes verstehen, um damit arbeiten zu können.
  15. % ist nicht der Operator für Ganzzahldivision. Der Modulooperator liefert den Rest einer Division. 42 / 10 = 4 42 % 10 = 2 Du kannst nicht einfach den einen durch den anderen austauschen.
  16. Ist dir klar, dass dabei etwas ganz anderes herauskommt? Damit machst du deine Koordinatenberechnung kaputt. Du hängst immer wieder 42 an den Vector an, bis der Speicher volläuft. Ich nehme an, der Ansatz, zwei Werte in einen unsigned int zu packen, war ein Versuch, den Speicherbedarf zu verringern, aber dabei ist einiges schiefgelaufen. Wie groß kann denn dein Vector werden? Maximal MAX_X * MAX_Y Einträge. Ich weiß nicht, wie groß die Schachbretter werden sollten, aber das ist ziemlich überschaubar. Und wenn du so etwas machst, solltest du nicht den Faktor 10 benutzen, um die Werte zu trennen. Damit kannst du die Werte zwar schön ansehen, aber der Computer könnte mit einer Zweierpotenz viel schneller rechnen. Nein. Aber die ganze Zerlegerei in zwei Einzelwerte könntest du dir komplett sparen, indem du gleich nach den zusammengesetzten Werten suchst. Bei findPos machst du es doch auch so, warum nicht bei visited?
  17. Es gibt dafür keinen allgemeingültigen Code. Es kommt auf das Betriebssystem an, um was für eine Art Prozess es sich handelt, wie er gestartet wurde, warum man ihn beenden will und wie. Erste Anlaufstelle wäre für Windows vermutlich TerminateProcess, aber das ist die Holzhammermethode.
  18. Doch, gibt es. Den Hinweis auf GetUserName hast du doch schon bekommen.
  19. fseek funktioniert bei Textdateien unter Windows nicht richtig, weil da eine Umforumung der Zeilenumbrüche stattfinden kann. Wahrscheinlich liegt's daran.
  20. Das heißt, die große Datei hat mehrere Zeilen, und deine Testdatei nur eine? Dann ist der Aufbau wohl doch nicht gleich.
  21. Vermutlich, weil deine Testdatei einen anderen Aufbau hat. Zeig doch mal die erste Zeile dieser Datei. Welchen Schritt vor welche Abfrage?
  22. Schau dir doch genau an, was du tust: Wenn du erfolgreich einliest, überspringst du ein Zeichen und machst weiter. Wenn das Einlesen aber fehlschlägt, versuchst du es an derselben Stelle nochmal. Kann ja nicht gehen. Ein Cast ist eine explizite Typumwandlung. Wie hier: speicher = (int*) malloc (anzahl * sizeof (int) ); Das (int*) ist hier überflüssig und kann unter bestimmten Umständen Fehler verbergen.
  23. Die entscheidende Funktion in diesem Codestück ist es nicht.
  24. Überleg dir nochmal, wann du ein Zeichen überspringen solltest. Und den Rückgabewert von malloc soll man nicht casten.
  25. Du solltest die Ausgabe nur machen, wenn fscanf erfolgreich war.

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...