#include
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
}
#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 printf("\n");
}
上一个提问中的回答可以解决的,因为这儿给出了数据类型(int),将读出的字符串用函数atoi();转换即可。代码如下:
#include
#include
#include
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()函数。