So my code works but I've been told it's too complicated and that I will lose marks unless I simplify it... Any help would be great.
Code:
while (1)
{
c = fgetc(fp);
if (c == EOF)
break;
while ((c == ' ') || (c == '\r') || (c == '\n'))
{
c = fgetc(fp);
if (c == EOF)
break;
}
buffer[0] = c;
index = 1;
c = fgetc(fp);
while ((c != ' ') && (c != '\r') && (c != '\n') && (c != EOF))
{
buffer[index] = c;
index++;
c = fgetc(fp);
}
buffer[index] = '\0';
empNo = atoi(buffer);
if (c == EOF)
break;
while ((c == ' ') || (c == '\r') || (c == '\n'))
{
c = fgetc(fp);
if (c == EOF)
break;
}
buffer[0] = c;
index = 1;
c = fgetc(fp);
while ((c != ' ') && (c != '\r') && (c != '\n') && (c != EOF))
{
buffer[index] = c;
index++;
c = fgetc(fp);
}
buffer[index] = '\0';
strcpy(lastName, buffer);
if (c == EOF)
break;
while ((c == ' ') || (c == '\r') || (c == '\n'))
{
c = fgetc(fp);
if (c == EOF)
break;
}
buffer[0] = c;
index = 1;
c = fgetc(fp);
while ((c != ' ') && (c != '\r') && (c != '\n') && (c != EOF))
{
buffer[index] = c;
index++;
c = fgetc(fp);
}
buffer[index] = '\0';
strcpy(firstName, buffer);
if (c == EOF)
break;
while ((c == ' ') || (c == '\r') || (c == '\n'))
{
c = fgetc(fp);
if (c == EOF)
break;
}
buffer[0] = c;
index = 1;
c = fgetc(fp);
while ((c != ' ') && (c != '\r') && (c != '\n') && (c != EOF))
{
buffer[index] = c;
if (index > 0)
{
if ((buffer[index] == '.') && (buffer[index - 1] == '.'))
{
printf("\nERROR");
FreeList();
fclose(fp);
return 5;
}
}
index++;
c = fgetc(fp);
}
buffer[index] = '\0';
hourlyRate = (float)(atof(buffer));