Home > Enterprise >  C How to getline() for an integer array using only <iostream>?
C How to getline() for an integer array using only <iostream>?

Time:10-18

I tried using cin.getline(), but it only works with char arrays.

I want to get an input of numbers with one char at the end (Q), with spaces in between all characters/numbers, but not include the whitespace in the array itself when indexing.

Input:

Enter integers (Q to quit): 1 2 1 8 8 9 Q

Output:

Second smallest: 2

CodePudding user response:

getline() is not the right solution for this task. Use operator>> instead, eg:

int value;
while (cin >> value)
{
    // use value as needed...
}

CodePudding user response:

Try using std::getline and std::istringstream:

std::string text_line;
std::istringstream number_stream(text_line);
int number = 0;
while (number_stream >> number)
{
   std::cout << number << "\n";
}

This technique is often used when parsing text lines of numbers.

  • Related