PDA

View Full Version : Sintassi di if nel C++ (piccolo problemino)


trediman
16-11-2006, 15:54
Ciao a tutti sono un neofita del C++ e stavo scrivendo un programmino facile facile che calcola la durata di un download inserendo dimensione del file e velocità in kb/s.
Ora il programma gira e fa tutto ciò che deve fare, solo che mi calcola o solo la conversione da gb a kb o solo da mb a kb mentre ho inserito i parametri per calcolarli entrambi a secondo della lettera inserita (g o m).
Temo sia un problema di sintassi nell'if ma sono ore che :muro: sto impazzendo per favore aiutatemi!!!!

#include <cstdlib>
#include <iostream>

using namespace std;

int main()
{
int n;
int a;
int b;
char byte, g, m;
float secondi, minuti, ore;
cout<<"Inserisci dimensione file ";
cin>>n ;
cout<<"Inserisci byte, esempi: g per gb, m per mb ";
cin>> byte;

if(byte==m)
{
b=n*1024;
cout<<b<<"kb"<<endl;
}
else if(byte==g)
{
b=n*1048576;
cout<<b<<"kb"<<endl;
};
cout<<"Inserisci velocità download in kb/s ";
cin>>a;
secondi=b/a;
cout<<"Per scaricare ci vogliono "<<secondi<<"secondi "<<endl;
minuti=secondi/60;
cout<<"oppure "<<minuti<<"minuti "<<endl;
ore=minuti/60;
cout<<"oppure "<<ore<<"ore "<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}

ianaz
16-11-2006, 16:34
Non conosco il C++ ma non ci vogliono gli apici nelle condizioni se é un char?

Intendo così:

if(byte=='m')

ianaz
16-11-2006, 16:38
Infatti, così mi funziona ;)


if(byte=='m')
{
b=n*1024;
cout<<b<<"kb"<<endl;
}
else if(byte=='g')
{
b=n*1048576;
cout<<b<<"kb"<<endl;
}
else
{
cout<<"Errore";
}

Ci ho aggiunto l'else prima per vedere se passava negli if ^^

trediman
16-11-2006, 16:41
GRazie milleeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
mi hai risolto il problema!!
lo sapevo che era una stronzata, ma proprio per qsto ho cambiato di tutto e proprio gli apici non li ho notati..
Questo è il brutto della programmazione puoi risolvere problemi complicatissimi e poi per un solo simbolo perdi tutto il programma.
grazie ancora
penso che la discussione ora si possa chiudere anke se non so come su qsto forum

ianaz
16-11-2006, 17:27
Grazie a te, m'hai fatto passare un po' di tempo :)