I am trying to read integers from a file to an array, but when I try to read the elements of said array, I get numbers that have little to nothing to do with the numbers in the file.
#include <fstream>
#include <istream>
#include <iterator>
#include <string>
using namespace std;
//Main Function
int main()
{
    //Declare variables and ask user for file names
    string f1, f2;
    int s1, s2, n = 0;
    cout<<"Please enter the names of the files you would like to merge, file extensions included."<<endl;
    cout<<"File 1 Name: ";
    cin>>f1;
    cout<<"File 2 Name: ";
    cin>>f2;
    //Opening files
    ifstream fs1, fs2;
    fs1.open(f1);
    fs2.open(f2);
    //Checking if both files exist
    if (fs1 && fs2)
    {
        //Getting length of files
        s1 = distance(istream_iterator<int>(fs1), istream_iterator<int>());
        s2 = distance(istream_iterator<int>(fs2), istream_iterator<int>());
        //Declaring arrays and writing values to them
        int a1[s1], a2[s2];
        while(!fs1.eof())
        {
            fs2 >> a2[n];
            n++;
        }
        //Closing files
        fs1.close();
        fs2.close();
        //Reading array
        for (int i=0; i<s2; i++)
        {
            cout<<a2[i]<<endl;
        }
    }
    //If the requested files do not exist
    else
    {
        cout<<"No file exists with that name."<<endl;
    }
}
I have two text files, file1.txt and file2.txt. The code opens the files, determines the number of integers within, and creates an array with the number of integers.
file1.txt: 45 69 87 3 9 32 11 9 6 66
file2.txt: 4
The output I get when reading the array for file1.txt (a1[]) gives very unexpected numbers:
File 1 Name: file1.txt
File 2 Name: file2.txt
0
0
1878276352
6421656
4
6422016
3756032
48
16
4199922
As you can see, this is not the output I expected. file2.txt only consists of the number 4, and its ouput was simply 16
I am somewhat new to c++ and programming in general, so you might have to bear with me. Does anybody see what I've done wrong?
I am using Code::Blocks and gcc is my compiler. Thank you for your time.
 
     
    