运用fopen读入文件出错求指点

使用fopen读入文件出错求指点!
我是新手,最近在学习fopen语句,想要打开一个txt文本,读取里面的数据再显示出来。程序如下:
#include <stdio.h>
#include <stdlib.h>

#define PATH "C:\Users\Documents\Visual Studio 2010\Projects\learn\data.txt"
int main()
{
     FILE* fd=NULL;
     long dev;
     long offset;
     long length;
     char ch;
     double ts=0.000000;
 fd=fopen(PATH,"r");
 if(fd==NULL)
 {
     printf("cannt not find file\n");
 exit(0);
 }
 fseek(fd,0,SEEK_SET);

 while(5==fscanf(fd,"%ld,%ld,%ld,%c,%lf\n",&dev,&offset,&length,&ch,&ts))
 {
     printf("%ld,%ld,%ld,%c,%lf\n",dev,offset,length,ch,ts);
 }
 close(fd);
 return 0;
}
但是调试之后总是显示cannt not find file。我已经把txt文本放在项目文件里了,怎么还是找不到文件呢???求各位前辈帮忙哇!

------解决方案--------------------
1,转义字符'\';
2,r:只读方式,文件必须存在;
 if(fd==NULL)
 {
     printf("cannt not find file\n");
 exit(0);
 }

提示“cannt not find file”,说明fopen返回的是NULL,打开该文件失败。
你把"r"模式改为"a+"试一下。
------解决方案--------------------
推荐使用WinHex软件查看硬盘或文件或内存中的原始字节内容。

不要把
fopen("...","...");fscanf,fprintf,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待

fopen("...","...b");fread,fwrite,fclose  //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待
弄混了

试试在cmd窗口中输入以下命令:
dir "C:\Users\Documents\Visual Studio 2010\Projects\learn\data.txt"
------解决方案--------------------
亲,“\”这个家伙不喜欢孤独,喜欢凑热闹。记住,以后用到它的时候,则说明它又在凑热闹,周边肯定有它看热闹的东西——包括断行,它的热闹在下一行!
------解决方案--------------------
返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno 中。
所以你应该检查errno的值来判断具体出错原因。