erroneous output

#include<stdio.h>
int main ()
{
FILE* f_read;
FILE* f_write;
char *string[80];
f_read=fopen("file1","r");

    while\(!feof\(f_read\)\);
  \{
            fscanf\(f_read,"%s",string\);
            fprintf\(stdout,"%s\\n",string\);
            \}

    return 0;
    \}

INPUT FILE
___________
manu
jilu
ruta

OUTPUT
-----------
manu
jilu
ruta
ruta

why the last line is being read two times

You are not error checking the return from your fscanf()

It isn't being read twice, it is being written(printed) twice. As porter has suggested, check the return value on your fscanf and exit if it is EOF.