So I am using fscanf to read from a file, and I am trying put those strings into an array.  It seems to work but I'm only getting the last string into my array.  When i try to print it, I'm only print the characters of my last string.  I didn't include my method because it doesn't effect what fscanf does in case anyone got confused.  Also, my CMDLINE file has the following strings foo barr tar 526-4567 456-8792.
output is :
456-8792
56-8792
6-8792
etc...
2
Here is the code:
int main (int argC, char *argV[]) {
    FILE *fp;
    int index;
    int ret;
    char str[1000];
    //Need at least 2 files to begin program
    if (argC < 3) {
        fprintf(stderr, "Usage: %s file\n", argV[0]);
        exit(1);
    }//if statemtn
    //check to see if the CMDLINE file is in the arguements
    ret = scanC(argC, argV);
    //if no CMDLINE file is found, print error and exit
    if (ret == 1) {
        fprintf(stderr, "you must provide a CMDLINE file\n");
        exit(1);
    }
    //iterate and open CMDLINE file and read from it
    for (index = 0; index < argC; index++) {
        if (strcmp(argV[index], "CMDLINE") == 0) {
            fp = fopen(argV[index], "r");
            //error check
            if (fp == NULL) {
                fprintf(stderr, "Counld not open file %s\n", argV[index]);
                exit(1);
            }//if statment
            //read from fscanf and put it's arguements into an array
            while (!feof(fp)) {
                char *p2 = str;
                //scan the strings of the file into str array
                while (fscanf(fp, "%s", p2) != EOF) {
                    p2++;
                }//while loop 2
            }//while lop 1
            //close the file for it is not needed to be open anymore
            fclose(fp);
        }//if statement
    }//for looop
    char *p;
    p = str;
    int j;
    for (j = 0; j < strlen(str); j++) {
        printf("%s\n", p);
        p++;
    }
    return 1;
}
 
     
     
    