ausgabe wird übersprungen?



  • Hallo Forum 🙂

    ich habe vor kurzem Linux installiert (Ubuntu), und habe mir netbeans installiert, da ich auch auf Windows damit gearbeitet habe.

    Mir ist aufgefallen, dass bei der Konsolenausgabe Ausgaben einfach übersprungen werden. (Aber nicht im debugger).

    z.B.

    int i;
        int* p = &i;
    
        cin >> *p;
        long int x = (long int) &i;
        long int y = (long int) &p;
        if(x>y)i += x;
        else i+=y;
        cout << *p;
    

    es würde jetzt einfach die Ausgabe vom Zeiger überspringen.

    Habe es mit diesen Sachen schon probiert:

    cout << *p << flush;
    cin.ignore();
    

    und das funktuniert nicht mal immer, nur manchmal -.-

    immer funktunieren tut nur das hier:

    cout << *p << flush;
    cin.ignore();
    cin.get();
    

    Das problem damit ist, das es auf ein Enter wartet, was ärgerlich ist. Ich hatte dieses Problem in Windows nicht. 😞

    Kennt hier jemand das Problem? Oder weiß jemand was ich dagegen tun kann?
    Oder woran es liegt?

    Danke schonmal im vorraus 🙂



  • Was soll denn das für ein Programm sein?
    Wenn ich das in eine main() einbette wird da nix übersprungen - einzig meine Pumpe geht schneller:

    #include <iostream>
    
    int main() {
      using namespace std;
      int i;
      int* p = &i;
    
      cin >> *p;
      long int x = (long int) &i;
      long int y = (long int) &p;
      if(x>y)i += x;
      else i+=y;
      cout << *p;
    }
    

    Und bei Dir, sagst Du, wird Z.13 übersprungen? Unwahrscheinlich, aber möglich, wenn Du da vorher einen integer-overflow produzierst. Aber ich wette da ist noch was anderes im Busch.

    Also: wie ist das komplette Programm und was soll es machen?
    Und wenn das das komplette Programm ist: evtl. ein Fall für's IDE Subforum.

    neuling7 schrieb:

    funktunieren

    Das Wort heißt nukular...



  • Das war jetzt einfach nur ein kleines Programm zum testen, es passiert auch bei komplexeren Aufgaben. Bei einfachen, aber leider auch.

    Wenn ich im Debugger das programm laufen lasse, dann kommt die Ausgabe, (egal welchen Wert ich eingebe) ohne cin.ignore oder get.

    Aber im Run modus, kommt die Ausgabe nur mit cin.ignore() und ein darauf folgendes cin.get().

    Wenn ich das Programm nehme und in Windows ausführe, habe ich überhaupt keine Probleme. 😕

    Ich weiß es hört sich seltsam an lol.

    Ok ich poste es dann mal im IDE Subforum.

    Danke 🙂


Anmelden zum Antworten