开发者

Reading input into dynamically-sized array

What I've been trying to do, is read a line from stdin and split it, by using whitespace as seperators.

Let's say I have this as input:

2

1 2

3 4

The first line gives me the amount of lines I'd like to read, they're all lines with integers seperated by an unknown amount of whitespace (i.e. could be 1 space, but it could also be 10 spaces).

The thing I've been trying to do is reading those lines into dynamically sized arrays of integers.

This was extremely easy in Python:

foo = raw_input()
array = foo.split()

or even shorter:

foo = raw_input().split()
开发者_运维知识库

However, because of the circumstances, I have to learn the beauty of C++. So I tried to create something akin to the above Python code:

#include <iostream>

using namespace std;

int lines;
int *array;

int main() {
    cin >> lines;
    for (int line = 0; line < lines; line++) {
        // Something.
    }
}

I don't seem to know a way to split the line of input. I know that std::cin reads until it reaches a whitespace. However, I can't seem to think of something to count the amount of numbers on the line...

A little nudge into the right direction would be appreciated, thanks.


so given all you wanted is a nudge, here are a couple of hints..

std::getline() - allows you to read from a stream into a std::string.

You can then construct a std::istringstream using this string which you've just read in. Then use this stream to read your ints

for example:

std::string line;
if(std::getline(std::cin, line))
{
  std::istringstream str(line);
  int lc;

  if (str >> lc) // now you have the line count..
  {
    // now use the same technique above
  }
}

oh and for your "dynamically sized array", you need to look at std::vector<>


In C++ you can access characters in a string with [], just as if that string were an array. I suggest you read a line from cin into a string, iterate over the string with a for loop and check each character to see whether it is whitespace. Whenever you find a non-whitespace character, store it in your array.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜