简体   繁体   中英

boolean expression in do while loop/c++

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;

}

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;
}

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;
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM