C语言怎么判断文件的行尾??

假如一个文件,每一行的字节都是不一样的,也不确定的,怎么用C语言判断文件的行尾,或者怎么读取一行的内容。用fscanf感觉没用,遇到空格就断了。... 假如一个文件,每一行的字节都是不一样的,也不确定的,怎么用C语言判断文件的行尾,或者怎么读取一行的内容。用fscanf感觉没用,遇到空格就断了。 展开
 我来答
靓丽还清湛的标兵5177
推荐于2018-04-09 · TA获得超过1649个赞
知道小有建树答主
回答量:1032
采纳率:100%
帮助的人:984万
展开全部
fgets()函数,读出来,如果有行尾,最后一个是'\n'之后是结束符
gets()从键盘读取一行会把换行符丢弃,但是fgets()不会丢弃,换行符是文件内容之一,如果一行太大,分几次读了,前几次都没有'\n‘ 一个'\n'也可以看做是一个段的结束符。
要用文本方式打开文件,找到'\n'就是行尾了,如果用二进制方式打开,则可能是'\r'和'\n'两个字符,读和写都用文本方式,读出来只要处理'\n'就可以
把行缓冲区定到够大,如10240,这样一次最多读10240字节,一般地都可以一次一整行了,除非10K以上的大段落举例:
#define YOURFILEPATH "D:\\test.txt"
char buf[1024];
FILE* rp;
if((rp=fopen(YOURFILEPATH,"rt"))==NULL){printf("文件%s打开失败",YOURFILEPATH);exit(1);}
while(!feof(rp)){
if(fgets(buf,10240,rp)==buf) printf(buf); //一次一行 读出来打到屏幕上
}
更多追问追答
追问
有没有类似vbs中的readline方法??
追答
就是fgets();下次读一行或读满指定字节.
只要指定的字节(也就是缓冲区大小)够大就是一次读一行了.
如果想要readline完全等同的效果,你得自己写函数
anan640925
2012-01-12 · TA获得超过5421个赞
知道大有可为答主
回答量:4868
采纳率:51%
帮助的人:1092万
展开全部
有特殊符号的
一般是26
也就是CTRL_Z
你用dubug看一个小的文件就可以知道了
好像有函数可以知道是否文件尾,EOF()?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bd9006
2012-01-11 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4.8万
采纳率:63%
帮助的人:1.6亿
展开全部
WINDOWS下行结束是\r\n
LINUX下,则是\n
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2012-01-12 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6565万
展开全部
供参考。
char cx;
FILE *fp;//声明一个文件指针变量fp
if((fp=fopen("filename","r"))==NULL){//读打开名为filename的文件并检查是否成功
printf("文件打开失败!\n");
exit(0);
}
while((cx=getc(fp)!=EOF)//EOF是文件结尾标志。不到结尾继续
putchar(cx);//把从文件读到的字符写到屏幕
fclose(fp);//关闭文件。
另一些函数如fgets()、fread()等都可以使用,具体要查看这些函数的原型声明和要求……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式