如何用C读取文本文件的一行字符?

study_2006 2006-06-19 03:33:13
在C语言中如何一次性读取文本文件的一行字符?
...全文
363 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ll_dzl 2006-06-19
  • 打赏
  • 举报
回复
file_info[i++]没有分配内存空间,可以在读之前执行file_info[i++]=(char*)malloc(100);
char *file_info[20];
while(!feof(fp))
{
file_info[i++]=(char*)malloc(20);
fgets(file_info[i++],20,fp);
}
study_2006 2006-06-19
  • 打赏
  • 举报
回复
谢谢大家了,
怎么给大家加分呀?
study_2006 2006-06-19
  • 打赏
  • 举报
回复
可以了,刚才发现一个问题,把*file_info[20],更改成file_info[100][20],搞定。
littlefish1981 2006-06-19
  • 打赏
  • 举报
回复
fgets(buf,MAX,fp):
buf: 用于存储输入的地址(char *类型);
MAX: 存储字符串的最大长度;
fp: FILE指针。

lz对fgets的用法有误。
lianghaitao 2006-06-19
  • 打赏
  • 举报
回复
char file_info[20];//把20改成足够大。
while(!feof(fp))
{
fgets(file_info,20,fp);//把20改大过任何一行的字符的数字。fgets在碰到'\n'就会把后面的数据抛弃,自动留下前面的数据。
}
study_2006 2006-06-19
  • 打赏
  • 举报
回复
:P刚才上面写错了。
char *file_info[20];
while(!feof(fp))
{
fgets(file_info[i++],20,fp);
}
会出错,但是
char file_info[20];
while(!feof(fp))
{
fgets(file_info,20,fp);
}
study_2006 2006-06-19
  • 打赏
  • 举报
回复
两位大虾的做法我都又有过。

:P,忘记说,我是在读取后把读取出来的内容存到数据组的时候出错。

也就是说如果用
while(!feof(fp))
{
file_info[i++]=fgets(fp);
}
会出错,但是
while(!feof(fp))
{
file_con=fgets(fp);
}
就不会出错。
triace_zhang 2006-06-19
  • 打赏
  • 举报
回复
建一个字符串缓冲,用fgetc逐字符读入缓冲,遇到'\n'或者文件结束符就结束读入,缓冲里面的就是一行。
Cody2k3 2006-06-19
  • 打赏
  • 举报
回复
fgets()?

69,381

社区成员

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

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