Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何根据位置(偶数或奇数)将整数分成两组_C++_Arrays_String - Fatal编程技术网

C++ 如何根据位置(偶数或奇数)将整数分成两组

C++ 如何根据位置(偶数或奇数)将整数分成两组,c++,arrays,string,C++,Arrays,String,我需要将一个txt文件拆分为2个数组 txt文件包含完整的数字。我可以不使用字符串吗? 例如,输入 4(how many line) 2 1 3 7 8 0 3 7 我希望数组1包含(一行中的第一个数字) 数组2包含(一行中的第二个数字) 我该怎么做?只是好奇…这里有一个不起作用的代码 ifstream ifs("sth.txt"); int g; ifs>>g; int girl[g]; int boy[g]; for(int i=0;i<2*g,i++;){ if (i%

我需要将一个txt文件拆分为2个数组 txt文件包含完整的数字。我可以不使用字符串吗? 例如,输入

4(how many line)
2 1
3 7
8 0
3 7
我希望数组1包含(一行中的第一个数字)

数组2包含(一行中的第二个数字)

我该怎么做?只是好奇…这里有一个不起作用的代码

ifstream ifs("sth.txt");
int g;
ifs>>g;
int girl[g];
int boy[g];
for(int i=0;i<2*g,i++;){
if (i%2==0)ifs>>gil[g];
if (i%2==1)ifs>>boy[g];}
cout<<boy[1];
ifstreamifs(“sth.txt”);
int g;
ifs>>g;
智力女孩[g];
智力男孩[g];
对于(int i=0;i>gil[g];
如果(i%2==1)ifs>>boy[g];}
cout
ifstream-ifs(“sth.txt”);
int g;
ifs>>g;
智力女孩[g];
智力男孩[g];
对于(inti=0;i>girl[i];
如果>>男孩[i];
}
cout
ifstream-ifs(“sth.txt”);
int g;
ifs>>g;
智力女孩[g];
智力男孩[g];
对于(int i=0;i>gil[i];
如果>>男孩[i];
}
cout>girl[a++];
}

for(inti=1;i>boy[(i-1)/2];
如果(i+1>女孩[(i-1)/2];
}

std::string str((std::istreambuf_迭代器(ifs)),std::istreambuf_迭代器();

对于(int i=0;I.您的数组声明无效C++)(还);它们是一个特定于GCC的扩展。请改用
std::vector
。当然,但只需比较一下Ari的代码比您的代码简单多少。没有带模的ifs。您有g行数字,每行包含两个不同处理的数字。让循环每行迭代一次并执行两个不同的操作更有意义一个接一个,而不是让循环每个数字迭代一次,然后在每次迭代中决定要做什么。@user2604063是的,我们读取两个数字g次,所以我们读取2g个数字。你先读取g/2个数字给
女孩
,然后读取第二个g/2数字给
男孩
。这样不行。你需要读取一个数字给女孩,一个给男孩等等。事实上我用第一个。当然你用第一个。但是你自己做怎么样?如果没有,接受其他男人的回答怎么样??
{1 
 7
 0 
 7}
ifstream ifs("sth.txt");
int g;
ifs>>g;
int girl[g];
int boy[g];
for(int i=0;i<2*g,i++;){
if (i%2==0)ifs>>gil[g];
if (i%2==1)ifs>>boy[g];}
cout<<boy[1];
ifstream ifs("sth.txt");
int g;
ifs>>g;
int girl[g];
int boy[g];
for(int i=0;i<g,i++;){
    ifs>>girl[i];
    ifs>>boy[i];
}
cout<<boy[0];
ifstream ifs("sth.txt"); 
int g;
ifs>>g;
int girl[g];
int boy[g];
for(int i=0;i<g,i++;){
    ifs>>gil[i];
    ifs>>boy[i];
}
cout<<boy[0];
int a =0; b = 0;
for(int i=0;i<g;i++){
     if(i%2) ifs>>boy[b++];
     else ifs>>girl[a++];
}
for(int i=1;i<=g;i+=2){
    ifs>>boy[(i-1)/2];
    if(i+1<=g)
        ifs>>girl[(i-1)/2];
}
std::string str((std::istreambuf_iterator<char>(ifs)), std::istreambuf_iterator<char>());
for(int i=0;i<g;i++){
  fscanf(str,"%d %d",boy[i],girl[i]);
}