Buongiorno, si tratta di un programma semplice semplice, un esercizio di un libro di programmazione c++, io programma su xubuntu e non ho dovuto che mi ricordi installare c++. Il testo è: Scrivere un programma che chieda all'utente di fornire un numero intero e che, poi, visualizzi le singole cifre del numero e la loro SOMMA. Ad esempio, le singole cifre di 3456 devono essere visualizzate come 3 4 5 6, e quelle di -2345 come 2 3 4 5. Sul libro da cui sto imparando c'è scritto che si può usare cin come variabile booleana, e ci sono anche esempi a riguardo. Ecco il programma che ho scritto io e che visualizza solo le cifre separate da uno spazio(2 3 4 5 6) il problema è che non dà indietro la loro somma come da ultimo enunciato, secondo me il cin aspetta, finito il numero il prossimo che non arriva e si blocca. Come si fa?
#include<iostream>
#include<istream>
using namespace std;
int main()
{
bool flag;
char ch;
int num;
int sum=0;
cout<<"inserisci un numero intero: "<<endl;
cin>>ch;
num=0;
if (ch=='-')
cin>>ch;
do
{
cout<<" "<<ch;
switch(ch)
{
case'0':
num=0;
sum=num+sum;
break;
case'1':
num=1;
sum=num+sum;
break;
case'2':
num=2;
sum=sum+num;
break;
case'3':
num=3;
sum=num+sum;
break;
case'4':
num=4;
sum=num+sum;
break;
case'5':
num=5;
sum=num+sum;
break;
case'6':
num=6;
sum=num+sum;
break;
case'7':
num=7;
sum=num+sum;
break;
case'8':
num=8;
sum=num+sum;
break;
case'9':
num=9;
sum=num+sum;
break;
default:
cout<<"inserisci una cifra intera non lettere o altri caratteri, solo il meno all'inizio, va bene"<<endl;
}
cin>>ch;
}
while (cin);
cout<<" la somma delle cifre del numero inserito è: "<<sum<<endl;
return 0;
}