Anzeige:
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 15 von 42

Thema: Doofe Frage zu printf() ...

  1. #1
    Der mit dem roten Fell Avatar von mrsuicide
    Registriert seit
    Dec 2002
    Beiträge
    970

    Unhappy Doofe Frage zu printf() ...

    Ich bin Windows C++ Coder und will langsam bei Linux einsteigen.
    Nun habe ich die (blöde) Frage, warum geht printf nicht?

    Wenn ich bei KDevelop include <stdio.h> einfüge kann ich printf nutzen.
    So weit, so gut keine Compilerfehlermeldung. Aber wenn ich nun z.B. printf("Hallo!\n"); einfüge, compiliert das Programm zwar perfekt lässt sich auch ausführen, allerdings erscheint nichts in der Konsole, sondern nur
    # chmod 755 testproggy
    # ./testproggy

    #

    Wenn ich das mit cout << "Hallo!\n" << endl; mache funzt es. Diesen Befehl mag ich aber net.

    Also was ist zu tun?
    Ramen!

  2. #2
    Der mit dem roten Fell Avatar von mrsuicide
    Registriert seit
    Dec 2002
    Beiträge
    970
    Hab gerade entdeckt dass Linux nix ausgibt, wenn ich printf("Hallo!"); verwende, sondern nur was wenn ich printf("Hallo!\n"); verwende.
    Ramen!

  3. #3
    Guybrush Threepwood Avatar von BBTE
    Registriert seit
    Jan 2002
    Ort
    Hannover
    Beiträge
    433
    hm das ist dann aber irgendwie ein kleiner fehler, ich schreibe meine progs in vi und kompiliere sie dann normal mit gcc, und er gibt mir auch bei printf("Hallo!"); was aus, \n muss bei mir nicht un bedingt dran hängen
    Gentoo Linux / gentoo-sources 2.6.28-r1 / fluxbox 1.1.1 ;-)
    Nexoc Osiris S602 / Pentium M 1,4GHZ / 1024 MB RAM / Intel 855GME 64 MB

    www.gentooforum.de

  4. #4
    - - - - - - - - - - Avatar von zander
    Registriert seit
    Mar 2001
    Beiträge
    6.144
    Ohne '\n' fehlt der Zeilenumbruch am Ende, hast Du das "Hallo!" am Anfang der nächsten Zeile möglicherweise nur übersehen?

  5. #5
    Der mit dem roten Fell Avatar von mrsuicide
    Registriert seit
    Dec 2002
    Beiträge
    970
    Original geschrieben von zander
    Ohne '\n' fehlt der Zeilenumbruch am Ende, hast Du das "Hallo!" am Anfang der nächsten Zeile möglicherweise nur übersehen?
    Ne, es stand echt nix da.

    Trotzdem thx.
    Ramen!

  6. #6
    Weltbürger
    Registriert seit
    Jul 2002
    Ort
    Oer-Erkenschwick
    Beiträge
    1.203
    hi

    ist mir auch schon passiert. Gerade bei Kdevelop läuft einiges nicht rund. Ich habe schon oft gehört, das deswegen viele Leute
    lieber auf eine andere Art und Weise programmieren.
    Kdevelop ist wirklich noch nicht so ausgereift.
    Aber vielleicht hast Du auch noch nicht alles für Kdevelop installiert.
    Mach mal das Setup neu und schaue was Dir noch fehlt. Außerdem müssen da noch ein paar Pfade angepaßt werden.
    Kdevelop sagt Dir beim setup genau, was Dir noch fehlt, wenn Dir etwas fehlt.

  7. #7
    Moderator
    Registriert seit
    Dec 1999
    Ort
    Stuttgart
    Beiträge
    1.466
    Hi,

    Original geschrieben von Benno
    st mir auch schon passiert. Gerade bei Kdevelop läuft einiges nicht rund. Ich habe schon oft gehört, das deswegen viele Leute
    lieber auf eine andere Art und Weise programmieren.
    Kdevelop ist wirklich noch nicht so ausgereift.
    Also das ist mir neu, das KDevelop für Fehler im Programmcode verantwortlich sein soll

    @mrsuicide

    Unter Linux sind stdin und stdout standardmäßig gepufferte Streams, d.h., wenn Du mit printf einen String ausgibst, und am Ende kein Newline-Zeichen einfügst, wird der String, solange der Puffer nicht voll ist, normalerweise auch nicht ausgegeben, es sei denn, Du leerst den Puffer explizit:

    Code:
    fflush (stdout);
    Gruß micha
    IRC: irc.euirc.net #tux

  8. #8
    ***** Avatar von Belkira
    Registriert seit
    Jun 2002
    Ort
    DE
    Beiträge
    2.313

    Question Re: Doofe Frage zu printf() ...

    Ich bin Windows C++ Coder und will langsam bei Linux einsteigen.
    Nun habe ich die (blöde) Frage, warum geht printf nicht?
    Ein C++ Coder verwendet kein printf.
    So weit, so gut keine Compilerfehlermeldung. Aber wenn ich nun z.B. printf("Hallo!\n"); einfüge, compiliert das Programm zwar perfekt lässt sich auch ausführen, allerdings erscheint nichts in der Konsole, sondern nur
    # chmod 755 testproggy
    # ./testproggy
    Nimm mal: ./testproggy ; sleep 5

    Ist das Red Hat Linux 8.0 oder eine neuere Bash2?

  9. #9
    Weltbürger
    Registriert seit
    Jul 2002
    Ort
    Oer-Erkenschwick
    Beiträge
    1.203

    Wie kein printf

    Also ich habe des öfteren mit meinen Borland compiler in C++ programmiert und er hat sowohl printf als auch cout angenommen.
    Es gibt nunmal C Befehle, welche auch in C++ funktionieren.
    Das ich nach einem printf-Befehl den Speicher wieder freigeben muß, ist mir neu.

    Aber in KDevelop ist das anscheinend so.
    Ich muß aber auch dazu sagen, das ich kein KDevelop -Experte bin. Ich habe mich schon reichlich mit KDevelop beschäftigt und bekam immer wieder einige Fehlermeldungen, welche ich nicht nachvollziehen konnte. So habe ich versucht
    mal Qt-programmcode einzubinden, oder einige angeblich fertige Vorlagen zu verwenden, aber es lief einfach noch nicht rund.
    Nun, mit an Sicherheit grenzender Wahrscheinlichkeit lag der Fehler meistens bei mir, das will ich nicht ausschließen, aber
    einiges funktionierte einfach nicht. So habe ich das dann wieder aufgegeben.
    Das liegt aber nicht daran das KDevelop schlecht ist. Nein, das will ich damit nicht sagen. Es ist vom Konzept eine sehr gute Wahl, jedoch erfordert es eine große Menge an Hintergrundwissen, welches ich anscheinend noch nicht habe.

  10. #10
    - - - - - - - - - - Avatar von zander
    Registriert seit
    Mar 2001
    Beiträge
    6.144
    Unter Linux sind stdin und stdout standardmäßig gepufferte Streams, d.h., wenn Du mit printf einen String ausgibst, und am Ende kein Newline-Zeichen einfügst, wird der String, solange der Puffer nicht voll ist, normalerweise auch nicht ausgegeben, es sei denn, Du leerst den Puffer explizit:
    Der Puffer wird spätestens dann ausgegeben, wenn das Programm beendet wird, es muß also irgendein anderes Problem vorliegen.

  11. #11
    - - - - - - - - - - Avatar von zander
    Registriert seit
    Mar 2001
    Beiträge
    6.144
    Es sollte überhaupt kein Problem darstellen, Funktionen der stdc Bibliothek mit C++ zu benutzen; wenn eine Entwicklungsumgebung eine Umgebung schafft, in der das nicht mehr möglich ist, so ist das schon merkwürdig. Insbesondere printf(3) ist auch mit C++ interessant, da die Formatierungsmöglichkeiten sehr komfortabel sind.

  12. #12
    Weltbürger
    Registriert seit
    Jul 2002
    Ort
    Oer-Erkenschwick
    Beiträge
    1.203
    Wie gesagt,
    wahrscheinlich fehlt irgendeine Konfiguration von KDevelop oder ein Pfad ist nicht richtig eingestellt.
    Meiner Meinung nach ist das Programm schon sehr ,sehr gut , aber ich jedenfalls hab da meine Probleme.
    Vielleicht muß man eine Option einstellen, die so einfach ist , das man gar nicht darüber nachdenkt.
    Ich für meinen Teil werde mich sowieso mal einer Linux-User-Group anschließen, und dann wird sich das sicher regeln.


  13. #13
    Registrierter Benutzer
    Registriert seit
    May 2001
    Ort
    Kottingbrunn
    Beiträge
    689
    Ich kann mir irgendwie nicht vorstellen des kdevelop dran schuld sein kann, das ist ja eigentlich "nur" ein front-end zu gcc, g++, etc. Schon eher kann ich mir vorstellen das es an der bash oder der Konsole liegt.

    Bei mir erzeugt folgendes Programm nachfolgende Ausgabe:
    hallo.cpp:
    Code:
    #include <stdio.h>
    
    int main(int argc, char** argv) { 
       printf("Hallo!");
       return 0;
    }
    Kompelieren und Ausführen:
    Code:
    [panzi@A2000P c++]$ g++ hallo.cpp -o hallo
    [panzi@A2000P c++]$ ./hallo 
    Hallo![panzi@A2000P c++]$
    Funtioniert also, ist nur halt in der Zeile, in die auch die bash nacher wieder schreibt.
    Caroline: "Ich dachte du bleibst bis zum ersten viertel."
    Richard: "Ich sagte, eher lass ich mich vierteilen!"

  14. #14
    ***** Avatar von Belkira
    Registriert seit
    Jun 2002
    Ort
    DE
    Beiträge
    2.313

    Re: Wie kein printf

    Öhm, Benno, Du wirkst verwirrt. Deine KDevelop Theorie halte ich für abwegig.
    Also ich habe des öfteren mit meinen Borland compiler in C++ programmiert und er hat sowohl printf als auch cout angenommen. Es gibt nunmal C Befehle, welche auch in C++ funktionieren.
    Das ist ja durchaus richtig. Aber ein C++ Programmierer kennt die Schwächen und Gefahren von printf und bevorzugt aus dem Grund Output Streams und Manipulators.

    @ Zander
    es muß also irgendein anderes Problem vorliegen.
    Wie z.B. ein die Zeile überschreibender Prompt der Shell. Und ja, das ist nicht auf allen System reproduzierbar.

    Aber ignoriert mein vorheriges Posting ruhig.

  15. #15
    kostenlos Avatar von ReSeT
    Registriert seit
    Feb 2002
    Ort
    Bergisch Gladbach
    Beiträge
    337
    Ich finde man sollte C und C++ einfach nicht mischen. Da blickt doch hinterher kein Mensch mehr durch.

    Meine Erfahrungen mit K-Develop habe ich auch hinter mir, meiner Meinung nach taugt diese IDE nur bedingt, darüberhinaus finde ich sie auch in der letzten Version noch nicht besonders stabil und übersichtlich, fast schon Bloatware.

    Letzten Endes bin ich doch zu Emacs und einem Terminalfenster für die Ausgabe gekommen, dann kann man solche Fehler gleich ausschliessen und es läuft stabil.
    hacker: [originally, someone who makes furniture with an axe] ...An expert or enthusiast of any kind...One who enjoys the intellectual challenge of creatively overcoming or circumventing limitations...

    [from Hacker's dictionary]

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •