Как я могу обнаружить новую строку? - PullRequest
0 голосов
/ 28 апреля 2019

Это домашняя задача.

Учитывая набор целых чисел, вычислите произведение этих чисел с помощью операций умножения.

Введите не более девяти строк тестовых наборов данных.и каждая строка (или набор данных) содержит несколько целых чисел, разделенных одним пробелом.

Каждый набор данных включает в себя n целых чисел, 1 ≤ n ≤ 12
Каждое целое число m в наборе данных имеет предел, 0 ≤ m ≤ 40

Для каждой входной строки (или набора данных) выведите значение продукта этих чисел.Напечатайте возврат каретки в конце каждой строки вывода.

Ввод: 2 3 4
Ввод: 24

Ввод: 5 2
Ввод: 10

Я получаю 40 за мой второй ввод.

Вот как я пытался решить проблему. (Мой второй вывод неверен; я получаю 40)

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string line;
    int twodigit =0;
    while(getline(cin,line,'\n'))
    {
        int num=1,i;
        for(i=0;i<sizeof(line)-1;i++){
            if(line[i]==' '){
                twodigit =0;
                continue;
            }
           else if((line[i]>=48 && line[i]<=57) && lol==1){
                num*=10;
                num+=(line[i]-'0');
            }
            else if(line[i]>=48 && line[i]<=57){
                num*=(line[i]-'0');
                twodigit =(line[i+1]>=48 && line[i+1]<=57) ? 1:0;
            }
        }
        cout<<num<<endl;
        twodigit =0;
    }
}

Поскольку я не знаю, как обнаружить новую строку, я просто попыталсяэто.

...