fprintf()fscanf()テキスト読み書き関数


fprintf(FILE *stream, const char *format, [ argument ]…); ポインタファイル、標準パラメータ、配列を受け入れ、スクリーン、配列、ファイルにデータストリームを転送できます.
fprintf(stdout,"%s %d %s %c",v,&d,r,&u);//       .
fprintf(fp,"%s %d %s %c",v,&d,r,&u);//      fp    .

fscanf(FILE*stream, const char*format, [argument…]); ポインタファイル、配列、標準パラメータを受け入れる、ファイル、配列データから値を読み取ることができる注意:fscnaf()はスペースと改行符に遭遇して読み取りを停止する.
fscanf(stdin,"%d",&num);//          ,    num .
fscanf(fp,"%d",&num);//           ,   num

fscanf()fprintf()読み書き例:
fprintf(pp,"%d %s %c %#x %f",&i,p,&c,&y,&o);//    
fscanf(pp,"%d %s %c %#x %f",&q,w,&d,&f,&g);//    
fprintf(stdout,"%d %s %c %#x %f",q,w,d,f,g);//    

サンプル・プログラム:
#include
#include
#define MAX 40
int main(void)
{
    FILE *fp;
    char name[MAX];
    if((fp=fopen("file","a+"))==NULL)
    {
        fprintf(stderr,"Can't open \"file\"file.
"
); exit(EXIT_FAILURE);//exit(1) } puts("Enter words to add to the file."); while(gets(name)!=NULL && name[0]!='\0') fprintf(fp,"%s ",name); puts("File:"); rewind(fp); while(fscanf(fp,"%s",name)==1) puts(name); if(fclose(fp)!=0) puts("File close error!"); return 0; }

fscanf()指定したファイルタイプの例を読み込みます.
#include
#include
#define sizes 40
int main(void)
{
    FILE *pt;
    char name[sizes];
    int i;
    int s=0;
    puts("Enter file name:");
    gets(name);
    if((pt=fopen(name,"r"))==NULL)
    {
        puts("File open error!");
        exit(EXIT_FAILURE);
    }
    rewind(pt);
    while(feof(pt)==0)
    {
        s++;
        if(fscanf(pt,"%d",&i)==1)
            printf(" %d   %d.
"
,s,i); else fscanf(pt,"%*c");// %*c } if(fclose(pt)!=0) puts("Close file error."); return 0; }