C语言fscanf函数读取结构化数据

来源:互联网 发布:湖人拉塞尔大学数据 编辑:程序博客网 时间:2024/05/16 05:32

函数原型:

int fscanf (FILE *__restrict __stream,const char *__restrict __format, ...) 

fscanf()分隔符是;空格、tab、回车,读取成功返回所读的字段数,读取失败或读取结束返回EOF。fscanf()是按照__format的格式读取字段,
如下面代码例子,%s%d%s表示一次读入3个字段,读完第一次后,文件指针fp指向第四个字段,那么第二次从第四个字段开始读,由此循环,直到结束时返回EOF,且看下面例子。

vim buddy

Tom 123 China Alex 321 US
#include <stdio.h>#include <sys/stat.h>#include<fcntl.h>#define SIZE 2int main(int argc, char *argv[]){    struct buddy    {        char name[50];        unsigned int tel;        char address[200];    };    struct buddy bd1[SIZE];    FILE *fp;    fp=fopen("buddy","rw+");    int i=0;    int num=0;   while(num!= EOF){num=fscanf(fp,"%s%d%s",bd1[i].name,&bd1[i].tel,bd1[i].address);       //读完第一行后,指针指向第二行       printf(" %d",num);       i++;    }    fclose(fp);    for(i=0;i<SIZE;i++){        printf("<name>%s <tel>%d <address>%s \n",(bd1+i)->name,bd1[i].tel,bd1[i].address);    }}
0 0
原创粉丝点击