You can check it with ferror(3), right after the while:
while (EOF != (ch = fgetc(fp)))
// do something
if (ferror(fp) != 0)
// error handling
ferror returns a non-zero if an error occured.
If you want use fp after an error occured, you'll need to clear the error flag with clearerr:
clearerr(fp);