file
然后
file.getline(char*,int,char
a=‘\n’)第一个是一个存储字符串的指针,第二个是要读取的最大长度,第三个是行结束符,默认是回车,函数说明就是当读入的字符超过最大长度int或者遇到行结束符(‘\n’)时就停止,而且这个很好用的(对于读入和写入),你看看文档就会了,哈哈,给分啊。!!~~
关键技巧:每行数据个数随机,可用
c
=
fgetc(fin)
ungetc(c,fin)
检查是否读到
换行符或文件结束符。
例如:
a.txt
1
2
3
45
56
6
7
8
9
10
至于记录每行数据个数,存放到数组,等等,可以自己补充完善。
程序:
#include
<stdio.h>
int
main(
)
{
file
*fin
int
a,c
fin=fopen("a.txt","rw")
while(1){
c
=
fgetc(fin)
if
(c==eof)
break
if
(c=='\n')
{printf("\n==========\n")
continue}
ungetc(c,fin)
fscanf(fin,"%d",&a)
printf("%d
",a)
}
fclose(fin)
return
0
}
C语言可以通过fgets函数一次读一行数据。
fgets函数原型如下:
char *fgets(char *buf, int bufsize, FILE *stream)
参数 说明
*buf: 字符型指针,指向用来存储所得数据的地址。
bufsize: 整型数据,指明存储数据的大小。
*stream: 文件结构体指针,将要读取的文件流。
fgets函数注意细节如下:
从文件结构体指针stream中读取数据,每次读取一行。
读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋'\0'),如果文件中的该行,不足bufsize个字符,则读完该行就结束。
如若该行(包括最后一个换行符)的字符数超过bufsize-1,则fgets只返回一个不完整的行,但是,缓冲区总是以NULL字符结尾,对fgets的下一次调用会继续读该行。
函数成功将返回buf,失败或读到文件结尾返回NULL
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)