Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - conversione
Forum - C/C++ - conversione

Avatar
jac++o94 (Normal User)
Newbie


Messaggi: 4
Iscritto: 28/09/2008

Segnala al moderatore
Postato alle 22:56
Lunedì, 29/09/2008
Ciao a tutti scusate per il disturbo ma vi devo di nuovo chiedere aiuto  sto facendo un programma per convertire i grammi ad esempio in kg solo che ho un problema vi incollo il codice e vi spiego :


#include <iostream>
#include <cstdlib>

using namespace std;

float main ()
{
    cout <<"Main Menu"<<endl;
    cout <<"Scegliere unità di misura"<<endl;
    cout <<" M                  Massa"<<endl;
    cout <<" 1                  litro"<<endl;
    cout <<" T                  tempo"<<endl;
    cout <<" L              lunghezza"<<endl;
    cout <<" E             exxxxittt!"<<endl;
    char rispmenu;
    cin>>rispmenu;
    switch (rispmenu){
        case 'm':
        system("cls");
        cout <<" scala: mg   kg    hg     dag    g   dg  cg  mg "<<endl;
        goto elaboratore;
        break;

    }
elaboratore:
cout <<"Inserire unità di misura di partenza"<<endl;
char misuraselect;
cin>>misuraselect;
cout <<"inserire cifra: ";
double cifra;
cin>>cifra;
cout <<"Inserire unità di destinazione: ";
char misuraendselect;
cin>>misuraendselect;

}

quando io cerco di inserire un numero a virgola mobile nella variabile double cifra la parte di codice che c'è dopo:
cout <<"Inserire unità di destinazione: ";
char misuraendselect;
cin>>misuraendselect;
non funziona e mi manda in crash il programma mentre quando metto un numero intero no ,qualcuno sa spiegarmi il perchè???:d:d
poi 2 cosa io ho provato a scrivere questo codice per la conversione :
switch (misuraselect){
case 'g':
if (misuraendselect == 'dag')
{
    cout <<"ans: "<<cifra/10<<endl;
}
break;
ma quando seleziono la misura finale della conversione il comando switch nn viene eseguito ed il programma finisce...:d potete spiegarmi come devo fare ??? grz mille anticipatamente 8-)

PM Quote
Avatar
munkaka (Member)
Pro


Messaggi: 119
Iscritto: 07/09/2008

Segnala al moderatore
Postato alle 7:40
Martedì, 30/09/2008
ciao, il problema è che la variabile misuraendselect accettava solo un carattere dato che è un char e non un array di caratteri, quindi se mettevi come input "dag" ti accettava solo "d", te l'ho trasformata in un string che accetta più caratteri

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <string>
  4.  
  5. using namespace std;
  6.  
  7. float main ()
  8. {
  9. cout <<"Main Menu"<<endl;
  10. cout <<"Scegliere unità di misura"<<endl;
  11. cout <<" M Massa"<<endl;
  12. cout <<" 1 litro"<<endl;
  13. cout <<" T tempo"<<endl;
  14. cout <<" L lunghezza"<<endl;
  15. cout <<" E exxxxittt!"<<endl;
  16. char rispmenu;
  17. cin>>rispmenu;
  18.  
  19. switch (rispmenu)
  20. {
  21.         case 'm':
  22.         system("cls");
  23.         cout <<" scala: mg kg hg dag g dg cg mg "<<endl;
  24.         goto elaboratore;
  25.         break;
  26. }
  27.  
  28. elaboratore:
  29. cout <<"Inserire unità di misura di partenza"<<endl;
  30. char misuraselect;
  31. cin>>misuraselect;
  32. cout <<"inserire cifra: ";
  33. double cifra;
  34. cin>>cifra;
  35. cout <<"Inserire unità di destinazione: ";
  36. string misuraendselect;
  37. cin>>misuraendselect;
  38.  
  39. switch (misuraselect)
  40. {
  41.         case 'g':
  42.  
  43.         if (misuraendselect == "dag")
  44.         {
  45.                 cout <<"ans: "<<cifra/10<<endl;
  46.                 break;
  47.         }
  48. }
  49.  
  50. system("pause");
  51. }


PM Quote
Avatar
jac++o94 (Normal User)
Newbie


Messaggi: 4
Iscritto: 28/09/2008

Segnala al moderatore
Postato alle 13:03
Martedì, 30/09/2008
grz mille :k::k:

PM Quote