Zum Inhalt springen

Klotzkopp

Mitglieder
  • Gesamte Inhalte

    9912
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    3

Alle Inhalte von Klotzkopp

  1. Warum suchst du nicht einfach mit CString::Find nach "Firmenname = "?
  2. Klotzkopp

    Reihenausgabe

    Was du statt getch benutzen kannst, habe ich doch geschrieben. Der Standard bietet nichts für clrscr.
  3. Klotzkopp

    Reihenausgabe

    std::cin.clear(); std::cin.ignore(std::cin.rdbuf()->in_avail()); std::cin.get(); [/code] Es gibt nichts im Standard, dass das hergibt.
  4. Klotzkopp

    Reihenausgabe

    cin und cout stehen in <iostream>, im Namespace std. Du brauchst also #include <iostream> und entweder using namespace std; (das holt den gesamten Namensraum in den globalen, oder using std::cin; using std::cout;[/code]
  5. Klotzkopp

    Reihenausgabe

    "funktioniert irgendwie nicht wirklich" ist keine ausreichende Fehlerbeschreibung. Ein Fehler ist aber auf jeden Fall der, dass der Ausdruck x+1 in der for-Schleife falsch ist. x+1 ändert nichts an x. Du musst x um eins erhöhen, üblicherweise mit ++x.
  6. Die Fehler verweisen nicht auf irgendwelche Header, sondern auf eine fehlende Bibliothek. Aus der MSDN Library kannst du auch erkennen, welche das ist: ws2_32.lib. Die musst du deinem Projekt hinzufügen. Wie das mit Dev-C++ genau geht, weiß ich nicht, vermutlich gibt es da aber Linkereinstellungen. Vielleicht kann da jemand aushelfen, der die IDE hat.
  7. Geht es um bestimme Daten, oder soll der Benutzer das angeben, oder soll die komplette Platte kopiert werden, falls letzteres, welche Platte soll kopiert werden? Ist das fest oder soll der Benutzer das angeben? Falls vorher nicht feststeht, welche Dateien kopiert werden müssen: Welches Betriebssystem, welche Entwicklungsumgebung? Was soll passieren, wenn auf dem Ziellaufwerk eine Datei nicht geschrieben werden kann?
  8. Klotzkopp

    Cao ??

    Ich kenne das nur als Chief Academic Officer.
  9. Das "obwohl" wundert mich. Ich habe doch gesagt, dass das in Ordnung ist, solange du die Daten binär wieder einliest. Ich verstehe das Problem nicht. Wenn du fwrite benutzt, bedeutet das, dass du keine Textdatei erstellst. Das wirst du spätestens dann bemerken, wenn du nicht nur char-Arrays speicherst, sondern z.B. int oder double. Solche Dateien sind nicht dafür gedacht, mit einem Texteditor gelesen zu werden. Wenn du etwas willst, was ein Mensch lesen oder sogar bearbeiten kann, darfst du nicht die ganze Struktur auf einmal schreiben, sondern musst jede Variable in Text umwandeln und z.B. mit fprinft schreiben. Das Einlesen wird dann natürlich auch viel komplizierter. Es gibt übrigens auch Code-Tags, dann geht die Einrückung nicht verloren
  10. Das kommt daher, dass du die komplette Struktur in die Datei schreibst. Damit schreibst du auch das, was hinter der Endmarkierung der Strings steht. Das ist bei dieser Vorgehensweise normal. Du darfst diese Daten dann auch nur binär einlesen.
  11. Das ist richtig. Oder einfach fgets nehmen. Ich kann mich dunkel erinnern, das erwähnt zu haben
  12. Was heißt denn das genau? Wird die Eingabe übersprungen? Dann musst du vor der nächsten Eingabe den Puffer leeren. Welcher? Die Versionsnummer ist schon ziemlich wichtig.
  13. Das vermute ich auch. Du kannst mit fflush Eingabeströme nicht "säubern", zumindest nicht verlässlich. Laut Standard erzeugt fflush, wenn es auf Eingabeströme wie stdin angewendet wird, undefiniertes Verhalten. Es gibt Compiler - zum Beispiel von Microsoft -, bei denen bewirkt es ein Leeren des Stroms, aber in deinem Fall ist es wohl nicht so. Du kannst in C den Eingabepuffer so löschen: setvbuf(stdin,NULL,_IONBF,0); setvbuf(stdin,NULL,_IOFBF,BUFSIZ);[/code] Ein weiteres Problem ist, dass du versuchst, sechs Datensätze in ein Array zu packen, das nur fünf Elemente hat. Die gültigen Indizes für dein Array sind 0 bis 4, nicht 0 bis 5. Und gets ist böse. Nimm fgets.
  14. Das ist ja schon im Ansatz schlecht. Du willst sicher nichts zusammengewürfeltes, sondern die Ergebnisse sollen die Datensätze beider Tabellen unter bestimmten Bedingungen enthalten. Welche sind das? Wie gut kennst du SQL? Kennst du WHERE und JOIN?
  15. Wenn du nirgendwo eine WHERE-Klausel oder JOIN benutzt, bekommst du ein Kreuzprodukt aller verwendeten Tabellen. Das hat absolut nichts mit C++ zu tun, sondern liegt an deinem SQL-Statement. Das ist Unsinn. Der Templateparameter von CAccessor ist doch eine Klasse, egal wie dein Statement aussieht. Eine Abfrage liefert immer ein Recordset, keine Tabelle.
  16. Google, erster Treffer: http://msdn.microsoft.com/library/en-us/dllproc/base/setconsoletextattribute.asp
  17. Wo ist denn das Problem? Ich habe dir doch gesagt, wie du vorgehen musst.
  18. Solche Accessoren kannst du nicht mit dem Wizard erzeugen, aber du kannst diese Klassen von Hand anlegen. Du brauchst einen Datenmember für jedes Feld des Ergebnisses, eine Column Map, für parametrierte Abfragen eine Param Map, und mit dem DEFINE_COMMAND-Makro kannst du das SQL-Statement festlegen. Such einfach mal in der MSDN Library nach DEFINE_COMMAND oder BEGIN_COLUMN_MAP.
  19. Wenn du keine Konsole willst, dann nimm keine Konsolenanwendung, sondern eine Win32-Anwendung.
  20. Es würde mich sehr wundern, wenn Spiele als Debugversion ausgeliefert würden. Hast du zufällig die Debug-Laufzeitumgebung von DirectX installiert?
  21. So pauschal kann man das nicht sagen. Die einzelnen Container garantieren dir obere Schranken für die Komplexität der Operationen (Einfügen am Anfang, am Ende, in der Mitte, Löschen, indexbasierter Zugriff usw.). Und von den Standardcontainern ist std::list der schnellste, was das Löschen und Hinzufügen in der Mitte angeht. Dafür sind andere Operationen mit der Liste langsamer als mit anderen Containern. Nein, das überlässt jeder Container dem Allocator. Du kannst einen eigenen Allocator benutzen, aber das solltest du wirklich erst dann machen, wenn du nachweisen kannst, dass Speicherfragmentierung ein konkretes Problem darstellt.
  22. Dann solltest du gar kein Array verwenden, sondern einen der Container der Standardbibliothek. Wenn du viel anfügst und wieder löschst, würde sich std::list anbieten. Das hätte auch gleich noch den angenehmen Nebeneffekt, dass du dich gar nicht mehr mit new und delete herumschlagen müsstest, weil der Container dir das Speichermanagement komplett abnimmt.
  23. Auf jeden Fall musst du delete[] benutzen. Ich vermute aber, dass du zusätzlich noch irgendwo zwischen new und delete in nicht allokiertem Speicher herumschreibst.
  24. Lies meine Signatur. Und wenn deine Variablen wirklich Integer gewesen wären - wie du behauptet hast -, und keine char-Arrays, hätte es funktioniert. Dein Problem ist, wie sich jetzt herausstellt, auch nicht, diese Dinger in ein Array zu schreiben. Das kommt dabei raus, wenn man nicht das Problem beschreibt, sondern das, was man für die Lösung hält. Viel Zeit nutzlos vertan, auch die der freiwilligen Helfer. Beschreibe bitte ganz genau die Eingabedaten, und was genau hinterher dabei rauskommen soll. Was willst du nachher mit den Daten machen?
  25. int array[] = { V1, V2, V3, V4 };

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