🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.c.moderated
Article #2358

Re: fscanf problem

#2358
From: Michael Smith
Date: Sat, 23 Mar 1996 06:44
50 lines
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-mail
References: <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)