Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

intro(3int)

setlocale(3)

strtod(3)

strtol(3)

nl_printf(3int)

printf(3int)

scanf(3int)

getc(3s)

printf(3s)

scanf(3s)

nl_scanf(3int)

Name

nl_scanf, nl_fscanf, nl_sscanf − convert formatted input

Syntax

#include <stdio.h>

int nl_scanf ( format [, pointer ] ...  )
char *format;

int nl_fscanf ( stream, format [, pointer ] ...  )
FILE *stream;
char *format;

int nl_sscanf ( s, format [, pointer ] ...  )
char *s, *format;

Description

The international functions nl_scanf, nl_fscanf, and nl_sscanf are identical to and have been superceded by the international functions scanf, fscanf, and sscanf in libi.  You should use the scanf, fscanf, and sscanf functions when you write new calls to convert formatted input in international programs. For more information on these functions, see the scanf() reference page.

You can continue to use existing calls to the nl_scanf, nl_fscanf, or nl_sscanf functions. These functions remain available for compatibility with XPG−2 conformant software, but may not be supported in future releases of the ULTRIX system.

The nl_scanf, nl_fscanf, and nl_sscanf international functions are similar to the scanf standard I/O function. (For more information on the scanf standard I/O function, see scanf() reference page.)  The difference is that the international functions allow you to use the %digit$ conversion character in place of the % character you use in the standard I/O functions. The digit is a decimal digit n from 1 to 9.  The international functions apply conversions to the n th argument in the argument list, rather than to the next unused argument. 

You can use the % conversion character in the international functions.  However, you cannot mix the % conversion character with the %digit$ conversion character in a single call. 

International Environment

LC_NUMERICIf this environment is set and valid, nl_scanf uses the international language database named in the definition to determine radix character rules.

LANGIf this environment variable is set and valid nl_scanf uses the international language database named in the definition to determine collation and character classification rules.  If LC_NUMERIC is defined, its definition supersedes the definition of LANG.

Examples

The following shows an example of using the nl_scanf function:

nl_scanf("%2$s %1$d", integer, string)

If the input contains “ january 9 ”, the nl_scanf function assigns 9 to integer and “january” to string . 

Return Values

These functions return either the number of items matched or EOF on end of input, along with the number of missing or invalid  data items. 

See Also

intro(3int), setlocale(3), strtod(3), strtol(3), nl_printf(3int), printf(3int), scanf(3int), getc(3s), printf(3s), scanf(3s)
Guide to Developing International Software

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026