Zum Inhalt springen

Klotzkopp

Mitglieder
  • Gesamte Inhalte

    9912
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    3

Alle Inhalte von Klotzkopp

  1. Klotzkopp

    istringstream

    Werde erst einmal die globalen Variablen los. Erstens ist das kein guter Stil, halte deine Variablen immer so lokal wie möglich. Zweitens ist es nicht gut, denselben fstream für mehrere Dateien zu "recyclen". Der Status des Streams wird nämlich nicht automatisch zurückgesetzt. Du brauchst übrigens Streams nicht manuell zu schließen, das passiert automatisch, wenn sie aus dem Scope laufen. Ein weiterer Vorteil von lokalen Variablen. Der Aufruf von open ist auch unnötig, dafür haben die Streamklassen Konstruktoren: void fc_copyfile(string dn, string pad) { ofstream outp(dn.c_str(), ios::binary); ifstream inp(pad.c_str(), ios::binary); // Datei kopieren outp << inp.rdbuf(); }[/code]Tut dasselbe wie deine Funktion, ist aber irgendwie kürzer, oder?
  2. Klotzkopp

    istringstream

    Ich meinte die parameterlose Überladung von rdbuf(): // Datei kopieren ifstream in("quelle"); ofstream out("ziel"); out << in.rdbuf();[/code]
  3. Ich frage mich, warum du hier .NET mit native DirectX mischst. Entscheide dich für entweder native oder .NET, dann wird's einfacher. Ansonsten vergeudest du viel Zeit auf die Reibungsverluste an den Schnittstellen dieser beiden Welten.
  4. Klotzkopp

    istringstream

    Du brauchst dich nicht mit find und substr herumzuschlagen. getline kann aus jedem Stream lesen, also auch aus einem Stringstream. Du kannst ein eigenes Trennzeichen angeben, also auch ';'. Du brauchst keine WinAPI-Funktion, um eine Datei zu löschen. std::remove aus <cstdio> tut das gleiche. Zudem hast du da keinen Funktionsaufruf, sondern eine Wiederholung der Funktionsdeklaration. Das Kopieren Zeichen für Zeichen ist auch nicht besonders effizient. Du kannst einfach dein Streambuffer des Eingabestreams (daran kommst du mit de rdbuf-Methode) mit dem << Operator auf den Ausgabestream schicken.
  5. Meinst du? Da fehlen aber bei etlichen Parametern (Value, Shift) die Datentypen.
  6. Das ist ja auch Quatsch. In deinem String steht kein \. In deinem String stehen die Steuerzeichen, die in einem Stringliteral als \r oder \n dargestellt werden. Also musst du auch diese ersetzen: "\r" durch "\\r" "\n" durch "\\n" usw.
  7. EnumDevices kann mit .NET-Funktionen nichts anfangen. Diese Funktion braucht einen native-Callback, also kein C++/CLI, sondern reines C oder C++. Der Aufruf über einen uninitialisierten Zeiger ist übrigens waghalsig.
  8. Sollte nicht in der Dokumentation dieser "speziellen Bibliothek" stehen, wie man mit diesem Fenster umgeht?
  9. Lass die Finger von dieser Entwicklungsumgebung. Warum, wurde hier schon oft erörtert, die Suchfunktion sollte einiges ausspucken. Nachtrag: Such nach "Dev-c*"
  10. Du lässt es aber von sEingabe(0) bis sEingabe(3) zählen. Klingelt's?
  11. Ich finde es etwas merkwürdig, dass du Werte aus dem Array als Index benutzt, um auf dasselbe Array zuzugreifen. Welche Werte stehen denn in sEingabe(0) und sEingabe(3)? Wolltest du vielleicht, dass deine Schleife von 0 bis 3 läuft? Falls nicht, wäre eine etwas bessere Problembeschreibung als "irgendwie fehlerhaft" notwendig.
  12. Hat diese "Meldungsklasse" denn eine Equals-Methode, oder wie wird der Vergleich durchgeführt?
  13. Klotzkopp

    Bäume in C

    Die Frage scheint sehr auf den Vorlesungsstoff zugeschnitten zu sein. Vermutlich will der Dozent eine spezifische, in der Vorlesung behandelte Variante sehen. Wir könnten dir nur allgemeine Antworten geben. Ich bezweifle, dass dir das weiterhilft. Was die Struktur in C angeht: Man kann jeden Baum in einen äquivalenten Binärbaum transformieren, indem man den linken Kindknoten als erstes Kind und den rechten als nächsten Geschwisterknoten interpretiert. Aber wie gesagt, keine Ahnung, ob das das ist, was der Dozent sehen will.
  14. Hab ich doch schon geschrieben:Nicht portabel Totaler Overkill Sicherheitsrisiko
  15. Da hast du dir aber eine der schlechteren Lösungen herausgesucht. Das Verhalten von fflush auf Eingabeströmen ist nicht definiert. Das funktioniert soweit ich weiß nur bei den Microsoft-Compilern. Ich verstehe das Bedürfnis, das Schließen eines Konsolenprogramms verhindern zu wollen. Mir ist aber noch nie ein ernsthaftes Konsolenprogramm begegnet, das am Ende noch einen Tastendruck erwartet. Das wäre auch ziemlich schlecht, weil man dann so ein Programm kaum durch Umleiten einer Ausgabe steuern könnte. Aber wenn man es denn dann macht, und auch noch den guten Hinweis von robotto7831a bekommt, dann sollte man doch eine der dort vorgestellten Lösungen benutzen. Also bitte: #include <stdio.h> void wait () { setvbuf(stdin,NULL,_IONBF,0); setvbuf(stdin,NULL,_IOFBF,BUFSIZ); getchar(); } int main() { int summand1, summand2; printf ("Additionsaufgabe eingeben: "); scanf ("%d + %d", &summand1, &summand2); printf("= %d\n\n", summand1 + summand2); wait(); }[/code]
  16. Du musst auch nicht jedes Stück Information übergeben. Du hast Objekte, Objekte haben Zustände. Wenn du eine bestimmte Information brauchst, kannst du das Objekt fragen, das diese Information in seinem Zustand speichert. In diesem Fall kannst du doch jederzeit das Listenwidget fragen, welches Item ausgewählt ist. Wenn du eine Funktion schreiben willst, die vom konkreten UI-Aufbau entkoppelt ist, dann schreib eine weitere Funktion, die das Item als Parameter hat. Der Slot macht dann nichts weiter, als das Item zu ermitteln, und (falls denn eins selektiert ist) diese andere Funktion aufzurufen.
  17. Und dann befürwortest du system("pause")? Eine unportable Funktion mit potentiellem Sicherheitsrisiko, die eigens einen weiteren Prozess startet, nur damit sich der eigene nicht automatisch beendet? Spätestens wenn main etwas anderes als 0 zurückgeben soll, braucht man die return-Anweisung. Und sie schadet nicht. Man kann sie bei main weglassen, man muss nicht.
  18. Ich kann auch nur wiederholen, was in der MSDN Library steht. Mit Server 2008 R2 wird "Terminal Services" in "Remote Desktop Services" umbenannt. Administrationszugriffe sind damit offenbar nicht gemeint. Über die diversen Flags für OSVERSIONINFOEX kann man auch andere Varianten wie Datacenter oder Small Business erkennen, oder feststellen, ob ein Server ein DC ist.
  19. Mit "Remote Desktop Services" bezeichnet Microsoft explizit mehrere gleichzeitige Client-Sitzungen (vormals Terminal Server genannt). Remote Desktop (wie bei XP Professional) benutzt Remote Desktop Services-Technologie. Siehe Remote Desktop Services (Windows) Die Beispielfunktion liefert bei Windows XP Professional FALSE zurück.
  20. Detecting Whether Remote Desktop Services Is Installed (Windows)
  21. Mach mal halblang. Wenn dein Ausbilder dir diese Version von Visual C++ gegeben hat, hat er möglicherweise Gründe dafür. Du solltest zuerst einmal nachfragen, und nicht gleich deinen Ausbilder zusammenfalten.
  22. Nicht "06", sondern 6.0. Nach dieser Nummerierung entsprechen 2005 und 2008 den Versionen 8.0 und 9.0. Dazwischen lagen noch zwei weitere Versionen, 2002 und 2003, das entspricht 7.0 und 7.1. Visual C++ 6 ist inzwischen 11 Jahre alt, und damit für Software uralt. Du solltest wirklich auf etwas Aktuelleres umsteigen. Nein, vermutlich nicht.
  23. Erstens brauchst du einen Datenbankserver, also das Programm. Zweitens brauchst du einen Connector (sprich: Eine Bibliothek), je nach Geschmack für C oder C++. Siehe MySQL :: MySQL Downloads Auf der MySQL-Seite gibt's auch jede Menge Dokumentation. Darüber hinaus sollten sich mit einer Suchmaschine auch Tutorials finden lassen. Wenn das immer noch nicht weiterhilft, musst du spezifischere Fragen stellen.
  24. Klotzkopp

    Nachkommastellen

    Es gibt zwei Möglichkeiten, Fließkommawerte auszugeben: Die Festpunktschreibweise und die Exponentialschreibweise. Als Voreinstellung entscheidet cout das selbst anhand des Wertes. Man kann aber auch eine der Möglichkeiten erzwingen, entweder über die setf-Methode des Streams oder über entsprechende Manipulatoren. cout.setf(ios_base::fixed); cout << f; // oder cout << fixed << f;[/code] Letzteres erfordert <iomanip>. Um die Exponentialschreibweise zu erzwingen, gibt es das Flag ios_base::scientific bzw. den Manipulator scientific.
  25. Kommt drauf an, was man damit machen will. Der Median hat auch seine Daseinsberechtigung.

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