On Jan 10, 2008 11:15 AM, Paul Herring <[EMAIL PROTECTED]> wrote:
> On Jan 10, 2008 8:57 AM, 王磊 <[EMAIL PROTECTED]> wrote:
> > I use fscnaf like the:
> >          FILE *fptr;
> >     int a;
> >    fptr = fopen("input","r");
> >          if ( fscanf(fptr,"%d",a) )    {
> >                    printf("%d",&a);
> >
> >              }
> >
> >       else printf("wrong");
> >       fclose(fptr);
> >
> > But it can not run successfully.
>
> (1) You're not checking the return from the fopen() call
> (2) You're not checking the return from the fscanf() call properly.
> (3) You do nothing if the fscanf() fails.
> (4) You're printing the wrong thing.
>
> FILE* fp;
> int a, r;
> if ( (fp= fopen("input", "r") ){
>    if ( (r = fscanf(fp, "%d", a) == 1){

Doh having seen Sachin's mail realised that this should be
    if ( (r = fscanf(fp, "%d", &a) == 1){


>       printf("%d read in\n", a);
>    }else{
>       fprintf(stderr, "Unable to scan input. %d items read\n", r);
>    }
> }else{
>    fprintf(stderr, "Unable to open file\n");
> }
>
> (Not compiled - there may be syntax errors in there.)


-- 
PJH

http://shabbleland.myminicity.com

Reply via email to