Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [C++] ripetere finche non si preme INVIO

    Salve raga,
    dovrei fare un programma che simuli un processo.

    Quindi ho pensato, di far visualizzare dei caratteri sullo schermo, fino a quando non viene premuto INVIO.

    Ho fatto il seguente codice:
    codice:
    #include <iostream>
    #include <windows.h>
    #include <time.h>
    
    using namespace std;
    
    int main()
    {
        int i;
        char x;
        i=1;
        cout << "Simulatore processo\n" << endl;
        cout << "Premi INVIO per terminare" << endl;
        Sleep(1800);
        do
        {    
         if (i>=254)
                    i=0;
         x=i;           
         cout << x;
         i=i+2;
        }
        while(getchar()!='\n');
        
        cout << "\n\nFINE PROCESSO..." << endl;
        Sleep(1500);
    }
    Pero' non fuziona, perche viene visualizzato solo il primo carattere e poi il programma si ferma.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    getchar() è una funzione BLOCCANTE. Significa che aspetta che venga premuto un tasto.
    La funzione che ti serve è kbhit() (che non è ANSI).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    si, ma cosi' nemmeno va, mi stampa il primo carattere e poi esce dal programma.
    codice:
    #include <iostream>
    #include <windows.h>
    #include <time.h>
    #include <conio.h>
    
    using namespace std;
    
    int main()
    {
        int i;
        char x;
        i=1;
        cout << "Simulatore processo\n" << endl;
        cout << "Premi INVIO per terminare" << endl;
        Sleep(1300);
        do
        {    
         if (i>=254)
                    i=0;
         x=i;           
         cout << x;
         i=i+2;
        }
        while(kbhit());
        
        cout << "\n\nFINE PROCESSO..." << endl;
        Sleep(1500);
    }

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Sì, ma almeno leggere il documento che ti ho linkato...

    It returns a non-zero integer if a key is in the keyboard buffer
    C'è anche un esempio bello pronto...

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.