no, while(fi>>x)
finisce quando trova 0 in fi...
non devi usare gcc ma g++ per compilare c++....
..poi non ho capito molto neanche io..