Warnings using format strings with sprintf() in C++
12,003
Solution 1
Your format lacks type, because l is a "sizeof" modifier. Should be %ld
Solution 2
boost::lexical_cast<string>(sz)
is much nicer, anyway.
Author by
Emilio
Updated on June 16, 2022Comments
-
Emilio almost 2 years
Compiling this lines
long int sz; char tmpret[128]; //take substring of c, translate in c string, convert to int, //and multiply with 1024 sz=atoi(c.substr(0,pos).c_str())*1024; snprintf(tmpret,128,"%l",sz);
I read two warning on snprintf line:
warning: conversion lacks type at end of format warning: too many arguments for format
Why? The type is specified (long int sz, and %l in snprintf) and the argument in snprintf is only one. Can anybody help me? Thanks.