C语言怎样读取TXT文档中两行字符之间的数据,如begin和end之间的3行数据
4个回答
展开全部
#include <stdio.h>#include <stdlib.h>
main( ) {
FILE *fin;
int a[1000],b[1000],n,i;
char one_line[80];
fin=fopen("abc.txt","r"); //打开文件
if (fin==NULL){printf("open file error\n");return 0;}
while(1){
if ( fgets(one_line,80,fin)==NULL)printf("read error\n");
if (strncmp(one_line,"begin",5)==0)break; // 寻找 begin 行 ,假定文件前面有许多别的内容
}
n=0;
for (i=0;i<1000;i++) {
if (fscanf(fin,"%d %d",&a[n],&b[n])!=2) break; //读到 end 结束
n++;
}
fclose(fin); // 关闭文件
printf("I read:\n");for (i=0;i<n;i++) printf("%d %d\n",a[i],b[i]); // 输出结果
return 0;
}
main( ) {
FILE *fin;
int a[1000],b[1000],n,i;
char one_line[80];
fin=fopen("abc.txt","r"); //打开文件
if (fin==NULL){printf("open file error\n");return 0;}
while(1){
if ( fgets(one_line,80,fin)==NULL)printf("read error\n");
if (strncmp(one_line,"begin",5)==0)break; // 寻找 begin 行 ,假定文件前面有许多别的内容
}
n=0;
for (i=0;i<1000;i++) {
if (fscanf(fin,"%d %d",&a[n],&b[n])!=2) break; //读到 end 结束
n++;
}
fclose(fin); // 关闭文件
printf("I read:\n");for (i=0;i<n;i++) printf("%d %d\n",a[i],b[i]); // 输出结果
return 0;
}
展开全部
#include "stdio.h"//
#include "string.h"//
#include "stdlib.h"//
void main(void){
FILE *fp;
int Decg[1000],i=0,j;
char Strf[6]="xyz";
if(!(fp=fopen("a.txt","r"))){
printf("Open the file fail...");
exit(0);
}
while(1){
fread(Strf,5,1,fp);
if(!strcmp(Strf,"begin")) break;
fseek(fp,-4,SEEK_CUR);
}
while(1){
fscanf(fp,"%d%s",Decg+i++,Strf);
if(!strcmp(Strf,"end")) break;
fseek(fp,-(long)strlen(Strf),SEEK_CUR);
}
fclose(fp);
for(j=0;j<i;printf("%d ",Decg[j++]));
printf("\n");
}
#include "string.h"//
#include "stdlib.h"//
void main(void){
FILE *fp;
int Decg[1000],i=0,j;
char Strf[6]="xyz";
if(!(fp=fopen("a.txt","r"))){
printf("Open the file fail...");
exit(0);
}
while(1){
fread(Strf,5,1,fp);
if(!strcmp(Strf,"begin")) break;
fseek(fp,-4,SEEK_CUR);
}
while(1){
fscanf(fp,"%d%s",Decg+i++,Strf);
if(!strcmp(Strf,"end")) break;
fseek(fp,-(long)strlen(Strf),SEEK_CUR);
}
fclose(fp);
for(j=0;j<i;printf("%d ",Decg[j++]));
printf("\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
上一个提问中的回答可以解决的,因为这儿给出了数据类型(int),将读出的字符串用函数atoi();转换即可。代码如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
char num[12];
FILE *fin = fopen("data.txt","rt");
if(fin == NULL) {
printf("打开文件失败!\n");
return 1;
}
fgets(num,12,fin); // 读出"begin"
while(feof(fin) == NULL) {
fscanf(fin,"%s",num);
if(strcmp(num,"end") == 0) break;
printf("%d ",atoi(num));
}
printf("\n");
fclose(fin);
return 0;
}
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
char num[12];
FILE *fin = fopen("data.txt","rt");
if(fin == NULL) {
printf("打开文件失败!\n");
return 1;
}
fgets(num,12,fin); // 读出"begin"
while(feof(fin) == NULL) {
fscanf(fin,"%s",num);
if(strcmp(num,"end") == 0) break;
printf("%d ",atoi(num));
}
printf("\n");
fclose(fin);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个没什么好的方法,就是打开文件,找到begin行,如果是找整行,你可以用getline()函数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询