有没有办法在一行中将数字(用空格分隔)输入数组?我的意思是,我曾经这样写过:
首先,我进入了sizeofarray。然后,我使用[for]循环将每个数字输入到每个元素中。在这种方法中,我每次都要按Enter键
所以我想要的是:
首先,输入sizeofarray。然后,在一行中输入所有元素的所有数字,每个元素用空格分隔
Ex:7,输入
1 5 35 26 5 69 8,输入
这样所有数字都存储在专用元素中。
我知道我的英语不好而且我不是一个好的程序员。所以请轻松解释。谢谢:D
答案 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);
}
}