-1

请您帮忙获取这种格式的输入:

{1,2,3,4}

并将其转换为整数数组?

    int * ns = new int [n];
    cin >> ns;

这不起作用。我应该如何改变它?

4

3 回答 3

0

您需要一个一个地读取元素并将它们存储到数组中。

int aNoOfElements = 0;
cin >> aNoOfElements;
int *anArray = new int[ aNoOfElements];     //allocate memory to hold aNoOfElements

for( int i = 0; i < aNoOfElements; i++ )
{
     cin >> anArray[ i ];                   // Read each input
}
于 2013-02-13T13:02:59.043 回答
0
using namespace std;
typedef istream_iterator<int> It;
vector<int> v;
copy(It(cin), It(), back_inserter(v));
于 2013-02-13T12:50:47.067 回答
0

您需要解析输入。将输入作为字符串,然后检查符合您想要的格式。您可以使用的算法:

  1. 检查第一个字符是否为'{'
  2. 如果是,则初始化一个变量(例如 temp)以保存您将要获取的数字(作为字符串),并使用空字符串,否则出错
  3. 读取下一个字符
  4. 如果它在 '0' 和 '9' 之间,则将其附加到 temp 并返回步骤 3,否则转到步骤 5
  5. 如果是逗号或'}',则将temp转换为整数并将其放入数组中,用空字符串重新初始化temp,否则出错
  6. 仍然在同一个字符上,如果是逗号则返回步骤 3,否则完成

我希望你能把上面的算法变成工作代码,祝你好运:)

PS:如果您发现错误,请随时告诉我

于 2013-02-13T13:07:58.940 回答