这是我要读取的文件
这是读取结果
#include <stdio.h>#include <stdlib.h>
#include <string.h>
#define MaxCols 2000 //设定每行字符数不超过MaxCols,根据变化调整
//获取已经打开文件fp的第line行内容到stri,如果成功返回得到的字节数,
//如果没有那么多行,返回-2
int getlinetxt(FILE *fp,int line,char *stri){
int i
fseek(fp,0,0) //指针到文件最开始
for(i=0i<linei++)
if(fgets(stri,MaxCols,fp)==NULL) //没有这么多行错误
return -2
return strlen(stri)
}
//获取filename文件的第line行内容到stri,如果成功返回得到的字节数,
//如果打开文件失败,返回-1,如果没有那么多行,返回-2
int getfiletxt(char *filename,int line,char *stri){
FILE *fp
if ((fp=fopen(filename,"r"))==NULL){
//打开文件错误,返回-1
return -1
}
return getlinetxt(fp,line,stri)
fclose(fp)
}
int main(){
char s[MaxCols]
int row=10, flag
//以下例子是获取d:\temp.txt的第10行文本内容
flag=getfiletxt("d:\\temp.txt",row,s)
if (flag==-1)
printf("打开文件错误\n")
else if(flag==-2)
printf("文件中的行数不足%d行\n",row)
else
printf("获取到的文本是: \n%s包含最后的换行符,长度=%d\n",s,flag)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)