1. Continuando a navigare su Inforge acconsenti implicitamente all'uso dei cookies. Scopri di più.
  2. Il nuovo Teamspeak è online! Clicca qui per maggiori informazioni.
  3. Scopri i metodi di guadagno di Inforge e inizia subito a monetizzare!

[c++]Programma che converte un intero in binario!

Discussione in 'C/C++ (IF)' iniziata da GenKs, 6 Settembre 2008.

  1. GenKs

    GenKs Utente Silver
    Utente Silver

    :
    12 Agosto 2007
    Messaggi:
    366
    Mi Piace:
    2
    Ecco che vi posto il sorgente del mio primo programma scritto interamente da me. Volevo sapere cosa ve ne pare.

    Codice:
    #include <iostream>
    #include <string>
    #include <algorithm>
    
    using namespace std;
    
    int main()
    {
        int y, x;
        string k;
        cout << "Inserisci un numero intero da convertire in binario:" << endl;
        cin >> x;
        cout << "Ecco il numero convertito in binario:" << endl;
        while(x)
        {
                   if(x%2 == 0)
                   {
                   k += "0";
                   }
                   else
                   { 
                    k += "1";
                   };
                   x = x/2;
        }
        reverse(k.begin(), k.end());
        cout << endl << k << endl;
        cout << "\n\t\t\t\t\t\t\t\tCopyright GenKs";
        getchar();
        getchar();
        return 0;
    }
    

     
  2. Pester
  3. imported_BlackLight

    imported_BlackLight Utente Gold
    Utente Gold

    :
    16 Agosto 2007
    Messaggi:
    1.709
    Mi Piace:
    0
    Prova a scrivere tu per allenamento una reverse, invece di usare quella già pronta in algorithm...in genere è un ottimo esercizio per capire i meccanismi di funzionamento delle stringhe in C e in C++.
    E i due getchar() alla fine sono un po' bruttini da vedere...se uno serve ad ammortizzare il \n di troppo proveniente da stdin, usa un bel fpurge(stdin) che è più elegante...
     
  4. GenKs

    GenKs Utente Silver
    Utente Silver

    :
    12 Agosto 2007
    Messaggi:
    366
    Mi Piace:
    2
    Cioe devo inserire al posto di un getchar(); fpurge(stdin); ? Ma non è solo per linux questa funzione o mi sto sbagliando? Visto che per adesso sto lavorando sulla piattaforma winzoz! E poi a che serve? Cmq seguirò il tuo consiglio, cercherò di scrivermi una reverse da solo! Grazie Blacklight!
     
  5. imported_BlackLight

    imported_BlackLight Utente Gold
    Utente Gold

    :
    16 Agosto 2007
    Messaggi:
    1.709
    Mi Piace:
    0
    fpurge() è definita in stdio, quindi direi che c'è anche per Windows...
    Serve a pulire il buffer di input da eventuali caratteri di troppo. Proprio il caso di quando richiedi stringhe in input e premi invio, in cui rimangono dei \n nel buffer...
     
  6. fojeaf

    fojeaf Utente Gold
    Utente Gold

    :
    3 Marzo 2008
    Messaggi:
    3.612
    Mi Piace:
    0
    interessante, ora ho capito perché i getchar di solito sono in coppia, perché quando premi invio in input va \n e contemporaneamente si chiude l'input quindi \n resta in memoria. ora ho capito.
     
  7. GenKs

    GenKs Utente Silver
    Utente Silver

    :
    12 Agosto 2007
    Messaggi:
    366
    Mi Piace:
    2
    Bene grazie della soddisfacente spiegazione, quindi devo includere l'header stdio! Quando avrò tempo cercherò di scrivermi una funzione reverse da solo cosi come hai detto tu imparo a gestire le stringhe! thz!
     
  8. GenKs

    GenKs Utente Silver
    Utente Silver

    :
    12 Agosto 2007
    Messaggi:
    366
    Mi Piace:
    2
    Blacklights anche includendo l'header stdio, mi esce questo errore ->"`fpurge' undeclared (first use this function) " e " (Each undeclared identifier is reported only once for each function it appears in.) "! Perchè me lo fa?
     
Sto caricando...

Condividi questa Pagina