Gehele getallen uit bestand lezen en opslaan in array C++

dit is mijn code, maar ik krijg een oneindige lus met het eerste nummer
Ik wil de gehele getallen uit het bestand lezen en ze in de array opslaan

het bestand bevat:

8 5 12 1 2 7

#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int main()
{    
    int n = 0; //n is the number of the integers in the file ==> 12
    int num;
    int arr[100];
    ifstream File;
    File.open("integers.txt");
    while(!File.eof())
    {
        File >> arr[n];
        n++;
    }
    File.close();
    for(int i=0;i<12;n++)
    {
        cout << arr[i] << " ";
    }
    cout << "done\n";
    return 0;
}

Alle hulp aub


Antwoord 1, autoriteit 100%

Ik ben het eens met @ravi, maar ik heb wat opmerkingen voor je:

Als u niet weet hoeveel gehele getallen er in het bestand zitten en het bestand bevat alleengehele getallen, dan kunt u dit doen:

std::vector<int>numbers;
int number;
while(InFile >> number)
    numbers.push_back(number);

Hiervoor moet u #include<vector>gebruiken.


het zou beter zijn als je leest hoeveel gehele getallen er in het bestand zitten en dan lus gebruikt om ze te lezen:

int count;
InFile >> count;
int numbers[count];       //allowed since C++11
for(int a = 0; a < count; a++)
    InFile >> numbers[a];

Opmerking: Ik heb niet gecontroleerd op succesvol lezen, maar het is een goede gewoonte om dit te doen.


Antwoord 2, autoriteit 75%

Je loop zou moeten zijn:-

for(int i=0; i < n ; i++)
{
    cout << arr[i] << " ";
}

Other episodes