Как читать входные данные, которые находятся на неизвестном количестве строк (допускается пустая строка) с консоли C ++ - PullRequest
0 голосов
/ 02 июня 2018

Я делаю упражнение на http://www.spoj.com/problems/RETO7/,, но я застрял при чтении входных данных, количество входных строк неизвестно, каждая строка имеет два числа, также есть пустая строка, может кто-нибудь знать способДля решения этой проблемы.Входные данные вставляются в консоль.

Веб-страница, о которой я упоминал выше, предоставляет нам машину для запуска кода (для любых проблем, которые также перечислены на странице).Мы можем общаться с его входным файлом через стандарт в стандарте.Например, для добавления в упражнение двух целых чисел вход содержит строки, соответствующие правилам, первая строка - это число вычисляемых пар int, называемое n, а в следующей строке n каждая строка имеет два целых числа.Выходной результат состоит из n строк, каждая строка содержит сумму пар целых чисел выше.Чтобы решить эту проблему, код ниже в порядке

#include <iostream>
using namespace std;

int main()
{
    int n,i,a,b;
    cin>>n;
    for(i=0;i<n;i++)
    {
        cin>>a>>b;
        cout<<a+b<<endl;
    }
    //fflush(stdin);
    //getchar();
}

Но теперь правила ввода изменены, нет первой строки с номером суммы, которую нужно вычислить, поэтому я не знаю, сколько вызововчтобы "сине" было сделано.И я ищу решение для чтения всех входных данных, я просто хочу, чтобы он вычислял только те входные данные, которые я вставляю в консоль, и назначаю входные данные после этого.Входные данные, которые я вставляю для кода выше:

7
1 2
3 4
5 6
7 8
9 10
23 34
56 67

и результат

3
7
11
15
19
57
123

пс: я не знаю, может ли вход содержать пустую строку, но в примереСпасибо, что читаете!

1 Ответ

0 голосов
/ 14 июня 2018

Я так глуп, наконец-то я нашел решение

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

int main()
{
    string str;
    int a,b;
    do
    {
        getline(cin,str);
        if(str!="")
        {
            stringstream ss(str);
            ss>>a>>b;
            //do something
        }
    }
    while(str!="");
    fflush(stdin);
    getchar();
}
...