Konzol kimenetet nem megfelelően jelenik meg a Qt5

szavazat
0

Írok egy töredékét osztály erre iskolai feladat és am gondjaid a konzol üzenetet kijelző előtt a bemenet. A cout sort megjeleníti olvasása előtt a bemenet a konzol, de ez csak azt mutatja ki, miután már beírt egy bemeneti a konzolba. Új vagyok a Qt, így nem vagyok tisztában, hogyan működik ez a motorháztető alatt.

Itt a kód:

// one of the requrements is we have to use Qt instead of the standard iostream
int main(void) {
    QTextStream cout(stdout);
    QTextStream cin(stdin);

    Fraction f1, f2, add, sub, mul, div;
    QString line;

    cout << Enter the numerator and denominator of fraction 1: ;
    line = cin.readLine();
    // ...
}

Is, van egy jobb módja tudok olvasni a frakciók közvetlenül a konzol egész? Megvan létre úgy, hogy írja be a frakció a számláló és a nevező szóközzel elválasztva, amely aztán olvasni, mint egy húr. Úgy tervezem megtörve a húr felét, és casting a két szám az egész számok.

A kérdést 13/02/2020 23:51
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
1

Ahhoz, hogy a szöveg valójában látható, meg kell öblíteni. Attól függően, hogy részleteket, kipirulás lehet automatikusan megtörténik egy újsor van írva, és nyilvánvalóan legalábbis akkor, ha az alkalmazás írási puffer tele van, és ha a fájl le van zárva. Az alkalmazásban, ezek egyike sem történne. Tehát meg kell öblíteni a coutmanuálisan, `QTextStream :: flush () .

„Nem a két áram egymástól elkülönítve?” Pontosan azok. A két QTextStreamtárgy, amelyek teljesen függetlenek, így olvasáskor az cin nem lehet megmondani a cout flush a puffert. Kapcsolódó, vegye figyelembe, hogy iostreamsa C- stdio cucc speciális mechanizmus okozza stdout át kell öblíteni, ha olvasáskor stdin .

Arról, hogy miért QTextStreamnem lehet lehúzni miután minden <<művelet, hogy a hogy a kiadási hatékonyabb. Kipirulás olyan rendszer hívást kell tenni, amelyek lassan (szemben a csak szöveget másol egyik helyről a másikra belsejében egy alkalmazás).

Független, Én nem nevet a saját objektumokat cinés cout, mert köteles okoz zavart a std::cinés std::cout.

Válaszolt 14/02/2020 00:32
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more