I' am writing a C program which allows the user to dynamically specify the File name from which the data is to be read. Next the user enters a lower bound and an upper bound. The data in the lines from between the bounds is to be printed.
For this the main function makes a call: readValues(cTargetName, iLower, iHiger);
The function readValues is supposed to work as follows:
- Check if file exist, if yes. Open it with fopen
- Read with feofandfgetsline by line the whole file, and store each line inchar string
- With a for loop, print the correct range of lines from the string
I'm not sure why but the while loop doesn't seem to exit although I use the feof statement, which should terminate after the end of the File is reached.
The code looks as follows:
#include <stdio.h>
#include <stdlib.h>
void readValues(char cFileName[75], int n, int m)
{
    //Variable declaration;
    char strArray[50][50];
    char *parser;
    int i = 0;
    FILE *Data;
    if(Data = fopen(cFileName, "rt") == NULL){
        printf("File could not be opened");
        return 1; //Can you return 1 in a void function?
    }
    //Read the file line by line
    while(feof(Data)==0){
        fgets(strArray[i], 200, Data);
        i++;
    }
    //Reading the specified lines
    for(n; n<=m; n++){
        printf("%s", strArray[n]);
    }
}
int main()
{
    char cTargetName[75] = {"C:/Users/User1/Desktop/C_Projects_1/TestData.txt"};
    int iLower = 2;
    int iHiger = 4;
    readValues(cTargetName, iLower, iHiger);
    return 0;
}
All help is appreciated. Thanks in advance!
 
     
     
     
    