Reputation: 23
I have a program to write: write a program where user enters numbers until he enters 'e' or 'E'. All number entered by user sum and write on console. So far, I write these, but I don't know how to break the loop when 'e' or 'E' is enter!? So, if anyone can help me with this.
#include<iostream>
using namespace std;
void main()
{
int sum=0, number=0;
do
{
cout << "Enter a number: \n";
cin >> number;
sum+=number;
} while (don't know what to type here);
cout << "Sum = " << sum << endl;
}
Upvotes: 1
Views: 404
Reputation: 327
So try this piece of code please.
#include<iostream>
using namespace std;
int main()
{
int sum = 0, number = 0;
while (true)
{
cout << "Enter a number: \n";
if (cin >> number) sum += number;
else break;
}
cin.clear(); //reset the state of cin
char ch;
cin >> ch;
if (!(ch == 'e' || ch == 'E'))
{
cout << "Invalid input!" << endl;
system("pause");
return 0;
}
cout << "Sum = " << sum << endl;
}
Upvotes: 1
Reputation: 852
you should make your program accept string as input, then try to convert that string to integer.
#include<iostream>
using namespace std;
int main() {
int sum = 0;
string number;
while (true){
cout << "Enter a number: ";
cin >> number;
if (number.length() == 1 && (number.at(0) == 'E' || number.at(0) == 'e')) break;
const char* data = number.c_str();
char* end = (char*)data + number.length();
int value = strtol(data, &end, 10);
sum += value;
};
cout << "Sum = " << sum << endl;
return 0;
}
Upvotes: 0