I've got some code which I'd like to unterstand. My C++ knowledge is a bit rusty, so maybe I could get some pointers (pun intended) to unterstanding the following code excerpt:

```
vector<int> vArray;
FILE * fData;
fData = fopen ("some://path/file.txt", "r");
int iValue;
while(fscanf(fData, "%d", &iValue) != EOF){
 vArray.push_back(iValue);
}
fclose(fData);

```

The two questions which I have are the following: 

1. How does the `while` loop with the `fscanf` work exactly? Does it read line-wise, character-wise, or something else?
2. What happens if there are floating point values, such as 0.05, 1.22 or -5.3 in the file? Is there a type conversion?

As I understand it, `vArray` is a vector which will only contain integers, and `vArray.push_back(iValue)` will append the value of `iValue` as a new entry to the vector. What I don't understand is the method of assining a value to `iValue`.