Article View: comp.lang.c.moderated
Article #2358Re: fscanf problem
From: Michael Smith
Date: Sat, 23 Mar 1996 06:44
Date: Sat, 23 Mar 1996 06:44
50 lines
2423 bytes
2423 bytes
sg7248613@omega.ntu.ac.sg wrote:
>
> I have been trying to read a section of data from a file for days.
>
> The data segment goes like this:
> .....
> Patch norm0 4 { { 0 -1 0 } { 0 -1 0 } { 0 -1 0 } { 0 -1 0 } }
> Patch vert0 4 { { 0 1 0 } { 1 1 0 } { 1 1 1 } { 0 1 1 } }.
> .....
> My actual code segment is as follows:
>
> fscanf(meshf, " Patch %s %d { { %f %f %f } { %f %f %f } { %f %f %f }\
> { %f %f %f } }\n Patch %s %d { { %f %f %f } { %f %f %f }\
> { %f %f %f } { %f %f %f } }\n", pptr->nname, &(pptr->numVert),
> &tmpf[0], &tmpf[1], &tmpf[2], &tmpf[3], &tmpf[4], &tmpf[5],
> &tmpf[6], &tmpf[7], &tmpf[8], &tmpf[9], &tmpf[10], &tmpf[11],
> pptr->vname, &tmpi,
> &tmpg[0], &tmpg[1], &tmpg[2], &tmpg[3], &tmpg[4], &tmpg[5],
> &tmpg[6], &tmpg[7], &tmpg[8], &tmpg[9], &tmpg[10], &tmpg[11]);
>
> The read of the first line is OK. But I can't scanf the second line
> successfully. Could anyone please enlighten me on this? Thank you!
I suspect that the problem is in the trailing '\n' character, but fscanf
syntax is always messy. If you leave out the trailing '\n', the leading
spaces in the format string will cause the program to skip over any white
space, including newlines.
***BUT***
Where your records are newline-delimited I normally find it easier to
read in a line at a time with fgets() and then parse it with sscanf()
e.g.
{
#define RECSIZE 80 /* or whatever will be big enough */
char buff[RECSIZE];
/* error handling left out for brevity */
fgets(buff, RECSIZE, meshf);
sscanf( buff, ".....", ..... );
}
--
#####################################################################
Michael Smith msmith@mpx.com.au
Emmenjay Consulting http://www.hutch.com.au/~emmenjay
#####################################################################
Technical Details
Message-ID:
<4j06k8$7sn@solutions.solon.com>Path:
arc1-ca.pugleaf.net!solon.com!not-for-mailReferences:
<4imaao$dsi@solutions.solon.com>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!solon.com!not-for-mail From: Michael Smith <msmith@mpx.com.au> Newsgroups: comp.lang.c.moderated Subject: Re: fscanf problem Date: 23 Mar 1996 00:44:24 -0600 Organization: Emmenjay Consulting Sender: clc@solutions.solon.com Approved: clc@solutions.solon.com Message-ID: <4j06k8$7sn@solutions.solon.com> References: <4imaao$dsi@solutions.solon.com> NNTP-Posting-Host: solutions.solon.com X-Mailer: Mozilla 2.0 (Win16; I)