I am trying to loop through a text file that contains random content. It's current contents are:
"13 -35 57 - 23723724 
12taste-34the+56rain-bow845"
My program should only get the numbers from the file (-35 as a negative number, but not - 23723724 due to the space in between) and no letters or other characters unrelated to the integer.
Currently my code has a while loop that runs through the file and fetches all the decimal values. For some unknown reason however, it stops after 57 (total result is: "13-3557" and then it stops).
I have attempted to iterate over every character seperately but that brought along it's own set of problems and this method at least returns whole numbers.
Here is my code:
int *getIntegers(char *filename, int *pn) {
    // Create a dynamic array
    int len = 100;
    int *numbers = malloc(sizeof(int) * len);
    // Source file
    FILE *file;
    file = fopen(filename, "r");
    int i = 0, number = 0;
    while(fscanf(file, "%d", &number) > 0) {
        numbers[i++] = number;
        printf("%d", number);
    }
    return numbers;
}
EDIT: I have changed my code and it now retrieves all the numbers, but no spaces.
// Create a dynamic array
int len = 100;
int *numbers = malloc(sizeof(int) * len);
// Source file
FILE *file;
file = fopen(filename, "r");
int i = 0, number = 0;
while(!feof(file)) {
    if(fscanf(file, "%d ", &number) > 0) {
        numbers[i++] = number;
    } else {
        clearerr(file);
        fgetc(file);
    }
}
fclose(file);
return numbers;
 
     
     
    