C++ 如何根据位置(偶数或奇数)将整数分成两组
我需要将一个txt文件拆分为2个数组 txt文件包含完整的数字。我可以不使用字符串吗? 例如,输入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%
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];}
coutifstream-ifs(“sth.txt”);
int g;
ifs>>g;
智力女孩[g];
智力男孩[g];
对于(inti=0;i>girl[i];
如果>>男孩[i];
}
coutifstream-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]);
}