So I have read multiple posts on why feof doesn't work properly and they all utilize using a while(fscanf(...) == 1) to read to end of file, the problem I have is that I have temp values that are different for each loop, because it is reading each line processing it and then moving to next line. The code I currently have reads all the input properly but prints the last line twice. I was wondering if there was a better way to go about this instead of just doing a hack job and removing the last line processed, since it is processed twice.
void readInputFile(Customer customers[]) {
    FILE *input = fopen("hw4input.txt", "r");
    while (!feof(input)) {
        char tempName[MAXNAMELEN];
        int tempQuantity;
        char tempItem[MAXNAMELEN];
        double tempPrice;
        fscanf(input, "%s %d %s $%lf", &tempName, &tempQuantity, &tempItem, &tempPrice);
        printf("%s %d %s %.2lf\n", tempName, tempQuantity, tempItem, tempPrice);
    }
    printf("EOF\n");
    fclose(input);
} 
 
     
    