How To sscanf() Example Using a Comma (,) as Delimiter (38335)
The information in this article applies to:
- The C Run-Time (CRT), when used with:
- Microsoft Visual C++ for Windows, 16-bit edition 1.0
- Microsoft Visual C++ for Windows, 16-bit edition 1.5
- Microsoft Visual C++, 32-bit Editions 1.0
- Microsoft Visual C++, 32-bit Editions 2.0
- Microsoft Visual C++, 32-bit Editions 4.0
- Microsoft Visual C++, 32-bit Editions 5.0
- Microsoft Visual C++, 32-bit Editions 6.0
This article was previously published under Q38335 SUMMARY
The example below shows how to use the sscanf() C run-time function to
read from an internal buffer delimiting fields with a comma (,). The
key is to use the brackets in the format of sscanf() function. The
format will be %[^','], which tells the function to read from the
buffer until a comma (,) is reached.
Sample Code
/* The following sample illustrates the use of brackets and the
caret (^) with sscanf().
Compile options needed: none
*/
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
char *tokenstring = "first,25.5,second,15";
int result, i;
double fp;
char o[10], f[10], s[10], t[10];
void main()
{
result = sscanf(tokenstring, "%[^','],%[^','],%[^','],%s", o, s, t, f);
fp = atof(s);
i = atoi(f);
printf("%s\n %lf\n %s\n %d\n", o, fp, t, i);
}
Modification Type: | Minor | Last Reviewed: | 7/13/2004 |
---|
Keywords: | kbcode kbCRT kbhowto KB38335 kbAudDeveloper |
---|
|