+ 2
Having Trouble with Multiple Inputs in SoloLearn Compiler
Complier instructions for the inputs say to use a separate line to distinguish between inputs, but just hitting Enter and starting a new line between inputs does not seem to be working; the program proceeds as if I had only given it one input. Am I doing it incorrectly? I am writing in C++ if that is pertinent.
8 ответов
+ 3
because your first list insertion never ends :D
choose a character and break first loop when it’s inputed, then you will get your second loop as well. Let’s say you choosed char ‘e’
in first loop write:
if (input == ‘e’) break;
input means the name of var, where you stroring it.
Then give compiler input like this:
1
4
6
e
2
7
9
+ 6
In Code Playground you can enter your values as follows:
1 2 3 4 5 x // inputs for list1
1 2 3 4 5 // input for list2
Note that the 'x' is used deliberately here to trigger the fail bit in cin, in order for the first loop to break out. However you need to do:
cin.clear();
cin.ignore();
Before the second while loop begins, otherwise the cin will stay on "failed" state, and refuse to accept any further input.
I think the for loop down there only enumerates the items of list1, it doesn't combine the two vectors, but I know you'll get to it soon, keep it up! : )
+ 5
It works,
But in your case- can we see your code? It may help
+ 4
Yes, it reads across lines. It is better to use getline to read one single line into a string buffer and use a memory stream to read from it. For example:
string s;
stringstream ss;
getline(cin, s);
ss.str(s);
while (ss >> n1)
{
list1.push_back(n1);
}
ss.clear();
You need to #include <sstream> for that.
+ 2
Thanks Ipang, ill try that out, that wouldnt require a lot if change from what i started with.
also thanks for bringing the last part to my attention. i had intended to combine them there but got sidetracked and think it went out the window lol
+ 1
Yes definitely, please see below and thanks for your help with it!
https://code.sololearn.com/c077reboUTuu/?ref=app
+ 1
I hadnt considered that maybe the loop never ended but that makes a lot of sense. i guess the program is breaking the loop when ALL input ceases which is why it is treating two outputs as one.
Thanks for the suggestions guys this gives me a lot to work with!
+ 1
you’re welcome my friend :)