我们可以用这种方式获取数组(a1,a2)中的输入吗?

时间:2015-07-11 07:35:18

标签: c++ arrays input

假设我们有两个整数数组a1[2]a2[2],我们想要输入,所以我们通常做的是

int a1[2],a2[2];
int i;
cout<<"Enter values in array a1\n";
for(i=0;i<2;i++)
{
    cin>>a1[i];       // Taking input in a1 separatly using loop
}
cout<<"Enter values in array a2\n";
for(i=0;i<2;i++)
{
    cin>>a2[i];      // Taking input in a2 separatly using loop
}

但是我们可以做这样的事情来最小化在代码中使用cin语句。

for(j=1;j<3;j++)   // Loop for taking input in a(j) array , value of j will be 1 first time so that input will be in array a1
{
    cout<<"Enter values in array a"<<j<<endl;
    for(i=0;i<2;i++)
    {
        cin>>a(j)[i];   // Can we do something like this so that we can take input using a loop inside loop
    }
}

我不知道什么是正确的问题标题,所以任何想要编辑问题标题的人都可以。

3 个答案:

答案 0 :(得分:1)

如果要保留2个单独的阵列,可以执行以下操作:

paste label.txt long.txt | column -s $'\t'

如果您拥有1个数组没问题,可以使用二维数组执行以下操作:

for(j=1;j<=2;j++)   // Loop for taking input in a(j) array , value of j will be 1 first time so that input will be in array a1
{
    cout<<"Enter values in array a"<<j<<endl;
    for(i=0;i<2;i++)
    {
        cin>>(j == 1 ? a1[i] : a2[i]);
    }
}

答案 1 :(得分:1)

您的意思是以下内容吗?

#include <iostream>
#include <functional>

int main()
{
    const size_t N = 2;
    int a1[N];
    int a2[N];
    size_t j = 1;

    for ( auto &r : { std::ref( a1 ), std::ref( a2 ) } )
    {
        std::cout << "Enter values in array a" << j++ << ": ";
        for ( size_t i = 0; i < N; i++ )
        {
            std::cin >> r.get()[i];
        }
    }        

    for ( auto &r : { std::ref( a1 ), std::ref( a2 ) } )
    {
        for ( size_t i = 0; i < N; i++ ) std::cout << r.get()[i] << ' ';
        std::cout << std::endl;
    }        
}    

如果要输入

1 2 3 4

然后输出看起来像

Enter values in array a1: 1 2
Enter values in array a2: 3 4
1 2 
3 4 

使用此方法,您可以使用两个以上的阵列。例如

    const size_t N = 2;
    int a1[N];
    int a2[N];
    int a3[N];
    int a4[N];
    size_t j = 1;

    for ( auto &r : { std::ref( a1 ), std::ref( a2 ), std::ref( a3 ), std::ref( a4 ) } )
    //...

答案 2 :(得分:0)

这里a1和a2是数组变量名。我怀疑你是否能做到这一点。 我认为我们能够解决你的问题就像

  1. 构造一个cpp语句字符串
  2. execute string as cpp code inside program
  3. ,我觉得这样做很简单