我有一个输入文件:
3 5 7 4 10 5 8 2 12 9
如何将仅这些数字的第一列存储在矢量(3,7,10,5,12)中?数字用空格分隔,如果我在下面执行以下代码,则只有第二列数字存储在向量中而不是第一列。
if (arrivalFile) {
while (arrivalFile >> first_arrival) {
myVector.push_back(first_arrival);
}
for (int i = 0; i < myVector.size(); i++) {
myVector.erase(myVector.begin() + (i));
cout << myVector[i] << endl;
}
}
答案 0 :(得分:2)
您需要正确删除偶数位置
但是,最简单的方法是使用dummy
变量
int dummy ;
if (arrivalFile) {
while (arrivalFile >> first_arrival >> dummy ) {
myVector.push_back(first_arrival);
}
}
答案 1 :(得分:0)
你可以做到
while (arrivalFile >> first_arrival) {
myVector.push_back(first_arrival);
int dummy;
arrivalFile >> dummy;
}
答案 2 :(得分:0)
无需擦除,只需:
while (arrivalFile >> first_arrival) {
myVector.push_back(first_arrival);
int skip;
arrivalFile >> skip;
}
答案 3 :(得分:0)
将第一个值读入数字,第二个读入虚拟变量(仅用于清空流)。
std::fstream myfile("data.txt", std::ios_base::in);
int number, dummy;
std::vector<int> vNumbers;
// test file open
if ( myFile) {
while ( myfile >> number >> dummy)
{
vNumbers.push_back( number); // insert number into vector
}
} else {
throw std::runtime_error( "can't open file"); // signal run time failure
}