[previous] 0195 [next] [U] Unknown length modifier used with 'e/E/f/F/g/G' conversion specifier, number %s.
Explicitly undefined REFERENCE - ISO:C90-7.9.6.2 Formatted input/output functions

An unknown length modifier is being used in conjunction with a '%e', '%E', '%f', '%F', '%g' or '%G' conversion specifier in a scanf format string.

Valid length modifiers for these conversion specifiers are "l" and "L" - indicating that the receiving object is of type double or long double.

In the code examples below "h" has been used; but "h" is only valid with integral conversion specifiers.


/*PRQA S 336,602,1302,1307,2017,3122,3200,3209,3335,3408,3602,3625 ++*/

#include <stdio.h>

extern void foo(void)
{
    float        ftot;
    double       dtot;
    long double  ltot;

    scanf("%f",  &ftot);               /*                           */
    scanf("%lf", &dtot);               /* l indicates "double"      */
    scanf("%Lf", &ltot);               /* L indicates "long double" */

    scanf("%hf", &ftot);               /* Message 0195              */
}

QA·C Source Code Analyser 8.1.2
© 2013 Programming Research.
www.programmingresearch.com
Personality Groups | Glossary | Message Index Contents