C语言 文件读取问题 求高手赐教。。。

ja19851001 2010-06-01 09:38:47
void read_stu_file() //读取记录
{
pNode p = NULL;
FILE* fp = NULL;

printf("\n\n\t正在读取...\n\n");
fp = fopen("D://C语言学习//student//Debug//next.txt","r");

if(fp==NULL)
{
printf("\n\t打开文件失败!\n\n");
return;
}
else
{
p = (LNode *)malloc(sizeof(LNode));
g_LinkFirst = p;

while(!feof(fp))
{
fscanf(fp,"%d\t%s\t%s\t%d\t%d\t%d\t%d\t%d\t\n",&p->stu.num,&p->stu.name,&p->stu.mima,&p->stu.nianling,&p->stu.banji,&p->stu.sxscore,&p->stu.Cscore,&p->stu.ywscore);
p = p->next;
p = (LNode *)malloc(sizeof(LNode));
n++;
}

fclose(fp);
printf("\n\t读取已完成!\n\n\n");
}

}

这段代码是写的实现读取功能
在文件夹为空的情况下 执行完
fp = fopen("D://C语言学习//student//Debug//next.txt","r");
后 文件指针fp就不为空了。。。查不到原因 求高手指点
...全文
119 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fay8048 2010-06-02
  • 打赏
  • 举报
回复
楼主了解一下fopen函数的返回值
ja19851001 2010-06-02
  • 打赏
  • 举报
回复

谢谢各位。。。
我用了个比较笨的办法
文件是否为空 判断下里面有没有内容就好了 就是先从文件里面读出一个元素
或者读出一个字符 如果能读出来就说明文件不为空 反之则return
budweiser 2010-06-01
  • 打赏
  • 举报
回复
"D://C语言学习//student//Debug//next.txt"

路径在 Windows 下默认是 '\', 不过'\'是转义字符, 一般用 "D:\\C语言学习\\student\\Debug\\next.txt"

"D://C语言学习//student//Debug//next.txt" 这样用应该也没有问题, 但是路径中有中文字符会导致读取失败, 楼主先把中文字符看看

看是不是两种方式都可以, 我觉得都可以
happytang 2010-06-01
  • 打赏
  • 举报
回复
不为空就对了
「已注销」 2010-06-01
  • 打赏
  • 举报
回复
"D://C语言学习//student//Debug//next.txt"

路径是这样的么 一般都是 只有一个 /
llh318724 2010-06-01
  • 打赏
  • 举报
回复
fopen()函数执行失败才返回空值(原因可能是文件不存在、设备故障、磁盘已满等),既然你文件存在fopen就执行成功,返回一个FILE类型的指针值。

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧