Saturday, September 13, 2008

C语言中,fpritf(), fscanf() 文件格式化读取

PS: double 双精度数浮点数的格式输入输出用 “%lf”


看下面一段code,fscanf()格式里\n 没有,就会出现重复读取的错误。


#include "test.h"

#include

#include

#include


int main(){


FILE *in;

int i,j=0;

char a='a';

int b1,b2,c;


in=fopen("in.dat","w+");

for(i=0;i<5;i++){

j+=8;

fprintf(in,"%c %d %d %d\n",a,i,i+1,j);

}

rewind(in);


for(i=0;i<5;i++){

fscanf(in,"%c %d %d %d\n",&a,&b1,&b2,&c);

 printf("get i=%d : %c %d %d %d\n",i,a,b1,b2,c);

}

fclose(in);

 printf("--------------------------------\n");

in=fopen("in.dat","r");

i=0;

while(1){

 if(fscanf(in,"%c %d %d %d",&a,&b1,&b2,&c)<=0) break;

 else{

 printf("get i=%d : %c %d %d %d\n",i,a,b1,b2,c);

 i++;}

}

fclose(in);

return 0;

}


[Session started at 2008-09-12 23:02:33 +0200.]

get i=0 : a 0 1 8

get i=1 : a 1 2 16

get i=2 : a 2 3 24

get i=3 : a 3 4 32

get i=4 : a 4 5 40

--------------------------------

get i=0 : a 0 1 8

get i=1 : 

 0 1 8

get i=2 : a 1 2 16

get i=3 : 

 1 2 16

get i=4 : a 2 3 24

get i=5 : 

 2 3 24

get i=6 : a 3 4 32

get i=7 : 

 3 4 32

get i=8 : a 4 5 40

get i=9 : 

 4 5 40

1 comment:

Anonymous said...

Hi theгe, just wanted to mentіon, I loved this blog ρost.
It was practіcal. Keep on posting!

Мy blog: sonographer salary florida