打开文件 fopen("需要打开的路径")
然后使用fgets函数读取行
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE 1024
int main()
{
char buf[MAX_LINE] /*缓冲区*/
FILE *fp /*文件指针*/
int len /*行字符个数*/
if((fp = fopen("test.txt","r")) == NULL)
{
perror("fail to read")
exit (1)
}
while(fgets(buf,MAX_LINE,fp) != NULL)
{
len = strlen(buf)
buf[len-1] = '\0' /*去掉换行符*/
printf("%s %d \n",buf,len - 1)
}
return 0
}
1、用fgets函数可以读取文件中某行的数据,某列数据就必须一个一个读入每行的第几个字符,再存入到一个字符串当中。
2、例程:
#include<stdio.h>#include<string.h>
void main()
{
char a[100],b[100],c[100]
int i=3,j=4,k=0 //第三行,第四列
FILE *fp = fopen("data.txt","r")
while(fgets(c,100,fp)){ //读入每行数据
i--
if(i==0) strcpy(a,c) //读到第三行数据
b[k++]=c[j-1] //把每行的那列字符拷到b中
}
b[k]=0
printf("第%d行数据:%s\n",i,a)
printf("第%d列数据:%s\n",j,b)
fclose(fp)
}
关键技巧:每行数据个数随机,可用
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
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)