键盘输入数字到数组但只有1行

时间:2016-09-03 09:04:48

标签: c++ arrays

有没有办法在一行中将数​​字(用空格分隔)输入数组?我的意思是,我曾经这样写过:

  

首先,我进入了sizeofarray。然后,我使用[for]循环将每个数字输入到每个元素中。在这种方法中,我每次都要按Enter键

所以我想要的是:

  

首先,输入sizeofarray。然后,在一行中输入所有元素的所有数字,每个元素用空格分隔

     

Ex:7,输入

     

1 5 35 26 5 69 8,输入

这样所有数字都存储在专用元素中。

我知道我的英语不好而且我不是一个好的程序员。所以请轻松解释。谢谢:D

4 个答案:

答案 0 :(得分:7)

我不知道为什么每个人都试图用String方式来做这件事。
很简单,C ++ std :: cin可以轻松实现它

<div class="form-group">
    <div class="col-xs-4"><label>Invoice #</label></div>
    <div class="col-xs-8 invoice_num"><span id="invoice_number"><%= (Invoice.last.present? ? (Invoice.last.id + 1) : 1) %></span></div>
</div>

答案 1 :(得分:2)

如果您要在一行中输入所有数字,则完全没必要先输入后面的数字。

您需要将整行读入一个字符串(char[]),然后解析该字符串以查找以空格分隔的子字符串,然后您需要将每个子字符串解析为一个数字

正是如何做到这一点,我们不会说,因为stackoverflow不是让别人为你做功课。

答案 2 :(得分:2)

将输入作为字符串读入,然后按空格分割以获取各个数字:

.Editor-container #menuBarDiv .btn-group::before

答案 3 :(得分:0)

最佳和安全的方法是使用容器,迭代器和流。如果'istream_iterator'从'int'以外的流值中提取,它将等于'end',所以从流读取到第一个非int,或者直到结束

#include <string>
#include <vector>

#include <iostream>
#include <sstream>


int main()
{
    using namespace std;

    size_t size = 0;
    cin >> size;
    cin.ignore();

    string buffer;
    getline(cin, buffer);

    stringstream ss(buffer);
    istream_iterator<int> iter(ss);
    istream_iterator<int> end;

    vector<int> vec;
    vec.reserve(size);

    for (size_t i = 0; i < size && iter != end; ++i, ++iter)
    {
        vec.push_back(*iter);
    }
}