Пользовательский ввод строки в потоке строки - PullRequest
1 голос
/ 11 июля 2019

Я пишу программу, которая берет строку и извлекает три числа из указанной строки. Код ниже отображает рабочую программу с использованием предопределенной строки. Я не могу понять, как получить строку от пользователя вместо этого. Я попытался stringstream iss(str) объявить строку внутри основной функции, но это не сработало.

#include<iostream>
#include<string.h>
#include <sstream>
using namespace std;
int main()
{
    int T,j;
    int X,Y,K;
    string s;
        stringstream iss("134 513 515");
    cin>>T;
    for(int i=0;i<T;i++)
    {
        iss>>X>>Y>>K;
        cout<<X<<endl<<Y<<endl<<K<<endl;
        int count=((X+Y)/K);
        if(count%2==0)
        cout<<"Chef ";
        else
        cout<<"Paja ";

    }
    cin>>j;
    return 0;
}

1 Ответ

0 голосов
/ 11 июля 2019

Вы можете прочитать строку, используя getline , затем вставьте ее в stringstream :

#include<iostream>
#include<string.h>
#include <sstream>
using namespace std;
int main()
{
    int T,j;
    int X,Y,K;
    string s;
    cin>>T;
    cin.ignore();
    for(int i=0;i<T;i++)
    {
        getline(cin, s);
        stringstream iss(s);
        iss>>X>>Y>>K;
        cout<<X<<endl<<Y<<endl<<K<<endl;
        int count=((X+Y)/K);
        if(count%2==0)
        cout<<"Chef ";
        else
        cout<<"Paja ";

    }
    cin>>j;
    return 0;
}

Не забудьте cin.ignore() очистить буфер буфера после cin>>T;

...