Answer for your first question :
If you want to read a line from the file you have to use the function fgets.It will read the entire line . I thing you used fscanf there .It will read only the first word.
Answer for the second question :
As like salem said you have to check the return value of fscanf.If it returns EOF , you just stop reading it and come out from the loop.
Code:
#include <stdio.h>
main()
{
FILE *fp=fopen("Score.txt", "r");
char scorename[20];
char scorescore[3];
int i;
for(i=0;i<30;i++){
if(fscanf(fp,"%s\n%s\n\n",scorename,scorescore)==EOF)
break;
printf("%s\n%s\n\n",scorename,scorescore);
}
}