Nu poți face acest lucru direct din citire deoarece nu știi când vine ultimul număr negativ. Tot ce poți face e să salvezi începând de la primul număr negativ și după să scapi de tot ce este după ultimul număr negativ. Ai mai jos un exemplu cum ai putea face acest lucru.
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int main() {
ifstream f("date.in");
int x;
bool on = false;
int last = -1;
vector <int> secv;
while (f >> x) {
if (x < 0) {
on = true;
}
if (on) {
secv.push_back(x);
}
}
while (secv[secv.size() - 1] > 0) {
secv.pop_back();
}
for (int i = 0; i < (int)secv.size(); ++i) {
cout << secv[i] << " ";
}
cout << "\n";
return 0;
}
Edit: scuze, acum abia acum am văzut că postul e de acum 7000 de ani.