|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2005
Città: Cavallino (LE)
Messaggi: 335
|
[C++]C++ e i suoi misteri
Ciao a tutti sto studiando il c++ e devo dire che il mal di testa non passa mai ( e sto iniziando ora!) mi spiegate perche questo programma se compilato cosi' funziona
Codice:
#include<iostream>
using std::cout;
using std::cin;
using std::endl;
int main()
{
char ch;
cout << "Benvenuto nel programma convertitore" << endl << endl;
cout << "Inserisci un carattere ( . per uscire): ";
cin >> ch;
while (ch != '.')
{
if (ch >= (char)(ch + 32))
{
cout << "In maiuscolo sara': " << (char)(ch - 32) << endl << endl;
}
else
{
cout << "In minuscolo sara': " << (char)(ch + 32) << endl << endl;
}
cout << "Inserisci un carattere ( . per uscire): ";
cin >> ch;
cout << endl;
}
getchar();
return 0;
}
Codice:
#include<iostream>
using std::cout;
using std::cin;
using std::endl;
int main()
{
char ch;
cout << "Benvenuto nel programma convertitore" << endl << endl;
cout << "Inserisci un carattere ( . per uscire): ";
cin >> ch;
while (ch != '.')
{
if (ch >= ch + 32)
{
cout << "In maiuscolo sara': " << (char)(ch - 32) << endl << endl;
}
else
{
cout << "In minuscolo sara': " << (char)(ch + 32) << endl << endl;
}
cout << "Inserisci un carattere ( . per uscire): ";
cin >> ch;
cout << endl;
}
getchar();
return 0;
}
Ultima modifica di rnuzzo : 05-04-2009 alle 17:23. |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Apr 2007
Messaggi: 263
|
Stai attento però che "ch >= (char)(ch + 32)" sarà sempre falso, quindi l'if non ti serve nemmeno
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2005
Città: Cavallino (LE)
Messaggi: 335
|
e vero
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2005
Città: Cavallino (LE)
Messaggi: 335
|
pero il prog funziona
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
E' sempre vero per ogni ch > MAX - 32, con MAX valore massimo di un char (cioè 2 elevato alla 8 * sizeof(char)).
Questo invece: ch >= ch + 32; con ch tipo char è sempre falso per via della promozione numerica se sizeof(int) > sizeof(char) [ps. le specifiche c infatti non escludono che un char possa avere la stessa dimensione di un int ma dicono solo che un int non può avere dimensione inferiore a un char).
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:46.




















