如何根据一个整数的位置(偶数或奇数)将其分成两组
How to split a full=number into two groups according to their position(even or odd)
我需要将一个txt文件拆分为两个数组txt文件包含完整的数字。我能不用绳子做吗?例如,对于输入
4(how many line)
2 1
3 7
8 0
3 7
我想要数组1包含(一行中的第一个数字)
{2
3
8
3}
阵列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];
您正在读取girl[g]
和boy[g]
,而不是0..(g-1)
。
我还改变了阅读方式:在循环的一次迭代中,用两个int代替1。
最后,我改变了第一个计数(索引0),而不是boy
的第二个元素。
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]);
}
相关文章:
- 两组使用lambda函数的大括号
- 尝试查找两组点的交集,错误"No viable overloaded '=' "
- 关于引用数组位置的问题
- 如何在两组线程之间正确来回传输控制权
- 两组的高效交集
- 如何在C或C 的小数点后两个位置后四舍五入
- 如何匹配不同环境的两组?C++
- 如何在两组上做两指针技术
- git:将同一文件的两个位置保持同步
- 如何在C++中输出两组不同的随机数
- 比较两组相等的类型
- 将字符串从头到尾分成两组,每组 C++
- 使用set_union合并两组时,只读位置的分配
- 在同一目录下编译两组C 二进制文件
- 比较两组std :: feek_ptr
- 给定两组 xyz 坐标和一个 sag (a) 的值,我可以在 OpenGL 中的这些点之间绘制一个悬链线
- 将字符串分配到动态数组位置时出错
- 两组向量之间的四元旋转
- 如何根据一个整数的位置(偶数或奇数)将其分成两组
- 如何根据一个整数的位置(偶数或奇数)将其分成两组