Übersetzung von cout in printf

  • C++

  • darkchainer
  • 1799 Aufrufe 19 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Übersetzung von cout in printf

    Ich habe das Problem das ich in der Schule (Fachabitur) zwar angeblich C++ lerne aber der dortige Kompiler hat bei cout sporadische Fehler (Autoren Version von Visual Studio c++) was Mathe aufgaben sowie die Formatierung der Ausgabe betrifft.
    Diese Fehler treten nicht auf wenn man printf nutzt, da es aber alles andere als selbstverständlich für meinen Lehrer ist ein Programm zu nutzen das auch mit dem ISO Standard cout richtig arbeiten kann bin ich auf die Idee gekommen das man eine Art "Dolmetscher" dafür schreiben könnte der mir cout in printf übersetzt.
    Jetzt habe ich das Problem das ich keine Ahnung habe wie das möglich sein soll da ich ja nicht viel Elan verspüre x-Millionen varianten in den Quellcode zu schreiben da dies 1. enorm viel Arbeit währe und 2. das Programm riesig machen würde...

    Hat vielleicht einer eine Idee wie man das anstellen könnte?
    (Bitte keine antworten wie: "Lern doch einfach printf." oder ähnlich, danke)

    Gruß
    Dave
  • ich hab namespace std
    und ich weiß auch das printf ein C befehl ist... das Problem ist ja das mein Lehrer
    das will, davon abgesehen ist das auch noch bei mir auf die Fragen gestoßen 1. geht das? und 2. bekomme ich das hin?
    daher... und ich hab eben keine lust printf zu lernen da es mir nach der Schule nichts mehr bringt...
  • printf geht auch ^^
    bsp:

    C-Quellcode

    1. BEISPIELCODE AUSM NETZ NICHT VON MIR
    2. #include <iostream>
    3. #include <stdio.h>
    4. int main()
    5. {
    6. printf ("Characters: %c %c \n", 'a', 65);
    7. printf ("Decimals: %d %ld\n", 1977, 650000);
    8. printf ("Preceding with blanks: %10d \n", 1977);
    9. printf ("Preceding with zeros: %010d \n", 1977);
    10. printf ("Some different radixes: %d %x %o %#x %#o \n", 100, 100, 100, 100, 100);
    11. printf ("floats: %4.2f %+.0e %E \n", 3.1416, 3.1416, 3.1416);
    12. printf ("Width trick: %*d \n", 5, 10);
    13. printf ("%s \n", "A string");
    14. system("PAUSE");
    15. return 0;
    16. }
    Alles anzeigen
    Judenverfolgung, Inquisitionen, Kreuzigungen,
    Hexenverbrennung, wir wissen wie man feiert
    - Ihre Kirche †
    Blacklist
  • das es auch geht ist ja klar (sonst würde mein Lehrer nicht drauf bestehen) nur warum ich die Frage stelle...
    Wenn ich das hin bekomme dann ist es auch möglich in andere Sprachen zu übersetzen und das ist eine (für mich) interessante Frage...
  • Du kannst C++ auch in Pascal umschreiben oder in VB
    Dies ist alles eigtl kein Problem.

    Printf ist so gesehn an sich ein cout befehl nur er wurde wie scanf umbeschrieben, da diese Befehle zu Lücken in vielen Programmen kamen (IE4.0 z.B.). Also nimm lieber die neusten Normen und halte dich daran.
    Judenverfolgung, Inquisitionen, Kreuzigungen,
    Hexenverbrennung, wir wissen wie man feiert
    - Ihre Kirche †
    Blacklist
  • Naja du müsstest wenn du EXE dateien umschreiben willst, erst mal nen decompiler basteln. Dies alleine dauert ewig. Dann noch eine Funktion oder Prozedur, die alle scnaf in cout übersetzt, bzw umgekehrt.
    Also ich würde mal so sagen an die 2000zeilen Code werden das schon sein MINDESTENZ
    Judenverfolgung, Inquisitionen, Kreuzigungen,
    Hexenverbrennung, wir wissen wie man feiert
    - Ihre Kirche †
    Blacklist
  • Wenn Du das im Abitur hast, dann kannst Du das garantiert nicht schreiben ^^ (ausser du bist ein mega freak, aber dann würdest du mit dem printf etc. kein prob haben ^^)
    Also ich lerne auch nur cout...mit printf haben wir noch nie etwas gemacht, auch ir nicht angesprochen (11.klasse berufliches gymnasium), find ich auch schwachsinn =)
    [SIZE="1"][COLOR="DeepSkyBlue"][COLOR="Black"]W[/color]ithout
    [COLOR="Black"]A[/color]ny
    [COLOR="Black"]R[/color]easons[/color]
    [/SIZE]
  • Du könntest versuchen dir ein eigenes cout zu schreiben welches intern printf benutzt.

    Ist nicht leicht, aber sicher machbar...

    Spontane idee:
    ne klasse ownCout in der du den operator << überlädst und dort dann statt dem iostream printf benutzt. Es wird vermutlich probleme mit std::endl und auch sonstigen typen geben, da du ja an den iostream verschiedene typen übergeben kannst und dementsprechend in printf einfügen müsstest, aber machbar ist es sicher irgendwie :)

    Ich selbst sehe es wie du, das man erwarten sollte das der compiler den man benutzt cout richtig implementiert hat und nutzt... Dementsprechend kann ich dir auch keine Lösung geben, weil mir der Aufwand für so etwas unnützes einfach zu groß ist :) Aber vielleicht hilft ja mein Ansatz weiter...

    Gruß
    Zerd
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • auf jeden fall sagt jemand mal ein klein wenig mehr als nur "geht vielleicht" oder "geht nicht"... danke euch^^
    ich schau mal sollte ich ein weg finden werde ich ihn noch mal posten
    (damit sich nicht noch jemand damit herumschagen muss... ;)
  • probleme mit der ausgabe zb.

    #include <iostream>
    #include <math.h>

    #define pi 3.14

    float de, D,V,A;
    using namespace std;

    void main()
    {
    cout<< "zahl nummer eins\n";
    cin>> D;
    cout<< "zahl nummer zwei\n;
    cin>> de;

    V = pi*pi*D*de*de;
    A = pi*pi*D*de;

    cout<< "V="<<V<<"mm\nA="<<A<<"mm"
    getch();
    return;
    }

    wenn ich die ausgabe wie hier mit cout schreibe dann spuckt er mir abundzu (nicht immer) irgendwelche anreihungen von ziffern ohne sinn aus... (nein es kommt nicht der maximalwert für float zahlen)

    mit printf wiederum funktioniert dies ohne fehler.
  • 1. Du hast das Semikolon hinter dem letzten cout vergessen.
    2. Sehe ich so auf die schnelle auch keinen Fehler, bin grad leider nicht zu Hause, sonst hätte ich es kurz mit dem Borland- Compiler (welcher auch immer das ist ^^) versucht.

    ~edit~
    Hab grad nochmal Google gefüttert. Liefert aber auch nichts brauchbares.
    Ich würde an Deiner Stelle einen anderen Compiler benutzen und dem Lehrer klar machen, dass ein Compiler alles können sollte. Vielleicht mal an einen anderen Lehrer wenden...ich weiss aber auch nicht wie's bei Dir aussieht. Übers Internet kann man sich schlecht ein Bild machen ;)

    ~edit2~
    So wie es sich anhört hast Du schonmal was mit C++ gemacht...Da hast Du doch sicher auch noch einen Compiler von...

    lg lalala22
    [SIZE="1"][COLOR="DeepSkyBlue"][COLOR="Black"]W[/color]ithout
    [COLOR="Black"]A[/color]ny
    [COLOR="Black"]R[/color]easons[/color]
    [/SIZE]
  • Habs jetzt gerade zu Hause nochmal probiert und es hat alles geklappt (Borland C++ Builder 5).

    Zwei Fehler warn noch drinne:
    Beim zweiten cout fehlen die Hochkommas.
    Und die Headerdatei conio fehlt auch. Da ist das getch drinne.
    [SIZE="1"][COLOR="DeepSkyBlue"][COLOR="Black"]W[/color]ithout
    [COLOR="Black"]A[/color]ny
    [COLOR="Black"]R[/color]easons[/color]
    [/SIZE]