1. Scanning the file line by line until I reach the end
2. Searching through the structure to match student ID
Here is my partial code:
Code:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main (void)
{
FILE *fptr;
char Mystring[100];
int studentID;
char lastname[50];
char username[50];
char userltname[50];
int ctr, secondctr, thirdctr;
int userinput;
//Below is my structure to store info from .txt file
struct studentrecord
{
char firstname[50];
char lastname[50];
int student_number;
int ast1, ast2, ast3, ast4, ast5 ;
int lab1, lab2, lab3, lab4, lab5;
int midterm;
int final;
};
struct studentrecord GNG1106[200];
fptr=fopen("test.txt", "r+");
if (fptr==NULL)
printf("Unable to open file.");
else
{
printf("FILE OPENED");
ctr=0; /*I'm scannig using for loop, but in the future I won't know the number of additions so I need a better way*/
while (ctr<6)
{
//Scan the file and store in structure
fscanf(fptr, "%d", &GNG1106[ctr].student_number);
fscanf(fptr,"\n%s", GNG1106[ctr].firstname);
fscanf(fptr,"%s", GNG1106[ctr].lastname);
fscanf(fptr, "%d", &GNG1106[ctr].ast1);
fscanf(fptr, "%d", &GNG1106[ctr].ast2);
fscanf(fptr, "%d", &GNG1106[ctr].ast3);
fscanf(fptr, "%d", &GNG1106[ctr].ast4);
fscanf(fptr, "%d", &GNG1106[ctr].ast5);
fscanf(fptr, "%d", &GNG1106[ctr].lab1);
fscanf(fptr, "%d", &GNG1106[ctr].lab2);
fscanf(fptr, "%d", &GNG1106[ctr].lab3);
fscanf(fptr, "%d", &GNG1106[ctr].lab4);
fscanf(fptr, "%d", &GNG1106[ctr].lab5);
fscanf(fptr,"%d", &GNG1106[ctr].midterm);
fscanf(fptr,"%d", &GNG1106[ctr].final);
printf("\n%s %s %d %d %d %d %d %d %d %d %d %d %d %d %d", GNG1106[ctr].firstname, GNG1106[ctr].lastname, GNG1106[ctr].student_number, GNG1106[ctr].ast1, GNG1106[ctr].ast2, GNG1106[ctr].ast3, GNG1106[ctr].ast4, GNG1106[ctr].ast5, GNG1106[ctr].lab1, GNG1106[ctr].lab2, GNG1106[ctr].lab3, GNG1106[ctr].lab4, GNG1106[ctr].lab5, GNG1106[ctr].midterm, GNG1106[ctr].final);
ctr++;
}
printf("\n\n\nPlease enter a valid student number=>");
scanf("%d", &userinput);
do /*Here I get an infinite loop */
{
ctr=0;
if (userinput==GNG1106[ctr].student_number)
printf("\n%s %s %d %d %d %d %d %d %d %d %d %d %d %d %d", GNG1106[ctr].firstname, GNG1106[ctr].lastname, GNG1106[ctr].student_number, GNG1106[ctr].ast1, GNG1106[ctr].ast2, GNG1106[ctr].ast3, GNG1106[ctr].ast4, GNG1106[ctr].ast5, GNG1106[ctr].lab1, GNG1106[ctr].lab2, GNG1106[ctr].lab3, GNG1106[ctr].lab4, GNG1106[ctr].lab5, GNG1106[ctr].midterm, GNG1106[ctr].final);
ctr++;
}while (userinput!=GNG1106[ctr].student_number);
fclose(fptr);
}
}
I believe I've met my match with this program, and fear I may be slain by it.