Zum Inhalt springen

Klotzkopp

Mitglieder
  • Gesamte Inhalte

    9912
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    3

Alle Inhalte von Klotzkopp

  1. Was soll das "rw" bei fopen bewirken? Die erlaubten Mode-Strings findest du z.B. hier: fopen. Es wäre auch von Vorteil, wenn du deinen Programm zumindest rudimentäre Fehlerbehandlung spendieren würdest. fputs beispielsweise hat einen Rückgabewert, den du prüfen kannst.
  2. NAT bezieht sich zunächst nur auf die Absender- und Empfängeradressen im Header der IP-Pakete. Du hast aber in der Antwort auf das PASV-Kommando eine IP-Adresse in den Nutzdaten eines Pakets. Ob dein Router das richtig umsetzt, ist IMHO nicht sicher. Schau dir in deinem FTP-Client doch mal an, welche IP-Adresse du da bekommst.
  3. Wenn das der ist, den dein Server benutzt. Der Server scheitert aber möglicherweise schon daran, die richtige IP-Adresse fürs passive FTP an den Client zurückzuschicken. Er müsste ja die des Routers nehmen, nicht seine eigene.
  4. Nein, "is" nicht klar. Könntest du "funkt nicht" etwas genauer beschreiben?
  5. Ich würde sagen, du hast mit nicht portablen Mitteln* die Funktion gets nachgebaut. Deine Funktion hat sogar das gleiche Pufferüberlaufproblem wie gets. *) conio.h und die Funktion, die du daraus benutzt (getch, gotoxy, clreol, wherex, wherey) sind alle nicht im Standard.
  6. Ich bin in C schon etwas eingerostet, aber ich würde das so machen: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> // Maximale Wortlänge #define MAX_WORD_LENGTH 100 // Maximale Balkenlänge #define MAX_BAR_LENGTH 70 int main() { int counter[MAX_WORD_LENGTH + 1]; int max_count = 1; int longest = 1; int i, j; int len = 0; memset( counter, 0, sizeof( counter ) ); for( ; ; ) { int c = getchar(); if( c == EOF || c == 'A' || len > MAX_WORD_LENGTH ) { break; } // Auf Whitespace (Leerzeichen, Tab, Zeilenumbruch) prüfen if( isspace( c ) ) { // Zähler für die aktuelle Wortlänge hochzählen ++counter[len]; // Länge zurücksetzen len = 0; } else { ++len; } } // Länge des längsten Wortes und größte Anzahl ermitteln for( i=1; i <= MAX_WORD_LENGTH; ++i ) { if( counter[i] > max_count ) max_count = counter[i]; if( counter[i] > 0 ) longest = i; } // Histogramm ausgeben for( i=1; i<=longest; ++i ) { // Balkenlänge berechnen int bar_length = counter[i] * MAX_BAR_LENGTH / max_count; printf( "\n%3d (%3d) ", i, counter[i] ); for( j=0; j<bar_length; ++j ) { putchar( '*' ); } } }[/code] Fragen oder Verbesserungsvorschläge sind willkommen
  7. Das sieht IMHO viel zu kompliziert aus. Deine Kommentare an den for-Schleifen machen den Code nicht gerade lesbarer. Zudem bringen sie keine Zusatzinformationen. Sie beschreiben nur genau das, was die jeweilige Schleife tut, nicht den Grund oder Zweck. Ich picke mal eine Stelle heraus: while (langeb > 0) // Wenn die länge des balken größer wie 0 { putchar('*'); // dann geb ein * aus. }[/code] Dieser Code bewirkt, dass entweder gar nichts passiert, oder unendlich viele Sternchen ausgegeben werden, denn langeb wird in dieser Schleife nie verändert. Wenn es einmal größer als 0 ist, ist das eine Endlosschleife.
  8. Ich habe mir mal erlaubt, Code-Tags einzufügen, damit die Einrückung des Codes nicht verlorengeht.
  9. DecimalFormat rundet nicht kaufmännisch, sondern nach dem "half even"-Prinzip. Das steht auch in der Dokumentation. Dabei wird zur nächsten zum Format passenden Zahl gerundet. Wenn aber die Zahl genau zwischen zwei ins Format passenden Zahlen liegt (wie in diesem Fall), wird zum geraden Wert hin gerundet. Das ist in diesem Fall 200 (denn 201 ist ungerade). Jaraz bezog sich vermutlich auf die Tatsache, dass sich nicht jede Zahl exakt als Fließkommawert darstellen lässt.
  10. Suchen geht am schnellsten in sortierten Containern, denn dann kannst du eine binäre statt einer sequentiellen Suche benutzen. Schau dir mal std::set und std::map an.
  11. Schneller in Bezug auf was? Es gibt keinen Container, der bei allen Operationen der schnellste ist. Welchen Container du benutzen solltest, hängt also davon ab, wie du ihn einsetzt. Zudem kann man keine allgemeinen Geschwindigkeitsaussagen über die Container treffen. Der Standard schreibt nur die Laufzeitkomplexität vor, die sagt aber nichts über die tatsächliche Geschwindigkeit aus. Die hängt maßgeblich von der Implementierung ab.
  12. @break: Was du da beschreibst, geht genauso auch mit std::ifstream und std::string. Das Grundproblem bleibt, dass man in Dateien nicht direkt etwas einfügen kann. Man muss den Inhalt in den Speicher holen, dort bearbeiten und wieder speichern.
  13. Soweit ich weiß, dient semop zum Anfordern und Freigeben. Der Windows-Teil sieht gut aus.
  14. Das ist aber mit Sicherheit nur ein typedef für eine eingebauten vorzeichenlosen Datentyp. Da kannst du also vermutlich ohne Probleme einen unsigned int o.ä. verwenden. Nachtrag: Ich hoffe, dir ist klar, dass du nichts einfügen kannst. Wenn du an einer bestimmten Stelle in die Datei schreibst, überschreibst du das, was da steht.
  15. Lass mal ldconfig laufen. Damit der Cache neu geschrieben werden kann, musst du das mit root-Rechten ausführen.
  16. Wenn schon, dann -L/usr/local/lib. Welche Distribution hast du da eigentlich? Steht /usr/local/lib in /etc/ld.so.conf?
  17. Na dann bau mit -lmysqlcppapi-2.0 "Geht net" ist keine ausreichende Fehlerbeschreibung
  18. Mit -L gibst du zusätzliche Verzeichnisse an, in denen nach Bibliotheken gesucht wird. in /usr/include/mysql sollten aber keine Bibliotheken drin sein. Äh, du solltest eigentlich zuerst configure, und dann die ganzen makes ausführen. Hattest du denn nach dem make install irgendwelche libmysqlapi-Bibliotheken in /usr/local/lib?
  19. Iomega REV Laufwerke - Tragbare Festplattenlaufwerke - Data Backup - Iomega Europe
  20. Den Hinweis bezüglich Mysql++ sowohl von carstenj als auch von mir hast du mitbekommen? Du schreibst, du hast das installiert. Wie bist du da genau vorgegangen? Nein. Mit -I (großes i) gibst du zusätzliche Pfade an, in denen nach Dateien für Includedirektiven (also Headerdateien) gesucht wird. Mit -l (kleines L) gibst du Bibliotheken an. Wenn du -lBLA schreibst, sucht der Linker nach einer Datei libBLA.a, üblicherweise in /usr/lib und /usr/local/lib.
  21. Das Makefile erzeugt allerdings eine Library: lib_LTLIBRARIES= libmysqlcppapi.la Also braucht man wohl ein -lmysqlcppapi.
  22. Die v1.7.4 von 2001? Oder der v2 RC von 2005? Der Autor sagt selbst, dass an Mysql++ mehr gearbeitet wird
  23. Hast du die Anweisungen in README.TXT genau befolgt?
  24. iEingabe wird nirgends etwas zugewiesen. Daher ist es sinnlos, den Inhalt zu prüfen. Sollte das mal eine for-Schleife werden? Ich glaube, es bringt gar nichts, wenn du dir irgendwelche Sachen irgendwoher kopierst und dann daran rumfrickelst. Programmieren bedeutet nicht "Basteln bis es passt". So kommst du auf keinen grünen Zweig.
  25. Diese Fehlermeldungen sind ohne den dazugehörigen Quellcode nutzlos.

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