fp = fopen("D:/abc.txt","r");
should be 
fp = fopen("D:\\abc.txt","r");
in use \ in path instead of / in Windows and extra \ for escape sequence. 
EDIT: 
As you commented to others answers that fp = fopen("D:\\abc.txt","r"); also not working then check what is name actually. You might given probably wrong name by mistake, check whether you have error like this.    
(1)  open command prompt
(2)  use DIR command to print name of file:
c:\Users\name> D:
D:\> DIR
 Volume in drive D is FUN BOX
 Volume Serial Number is B48A-3CE7
 Directory of d:\
 27-02-2013  19:23                 0 abc.txt.txt
 26-02-2013  22:05    <DIR>          BOLLYWOOD MOVIES
 27-02-2013  19:31                 0 x
           2 File(s)              0 bytes
           1 Dir(s)  11,138,654,208 bytes free
file name is abc.txt.txt but when you see this in folder extension doesn't appears and file name looks abc.txt 
I am Linux user and I normally do this mistake in Windows. That's why.  May be it help you!