读取数组格式输入

时间:2013-02-13 12:47:50

标签: c++ arrays input

请帮助您输入以下格式:

{1,2,3,4}

并将其转换为带整数的数组?

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

这不起作用。我该怎么改变它?

3 个答案:

答案 0 :(得分:0)

using namespace std;
typedef istream_iterator<int> It;
vector<int> v;
copy(It(cin), It(), back_inserter(v));

答案 1 :(得分: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
}

答案 2 :(得分:0)

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

  1. 检查第一个字符是否为“{”
  2. 如果是,则初始化一个变量(比如temp)以保存你将要获得的数字(作为一个字符串),带有空字符串,否则错误
  3. 阅读下一个字符
  4. 如果介于“0”和“9”之间,则将其附加到temp并返回步骤3,否则转到步骤5
  5. 如果它是逗号或'}',则将temp转换为整数并将其放入数组中,使用空字符串重新初始化temp,否则出错
  6. 仍然使用相同的字符,如果是逗号,则返回步骤3,否则完成
  7. 我希望你能将上面的算法变成工作代码,祝你好运:)

    P.S。:如果发现错误,请随时告诉我