第1个回答 2013-02-24
#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");
}
第2个回答 2013-02-24
上一个提问中的回答可以解决的,因为这儿给出了数据类型(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;
}