تحذيرات استخدام سلاسل التنسيق مع sprintf () في C ++

StackOverflow https://stackoverflow.com/questions/338400

  •  19-08-2019
  •  | 
  •  

سؤال

وتجميع هذه الخطوط

    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); 

وقرأت اثنين تحذير على خط snprintf:

 warning: conversion lacks type at end of format
 warning: too many arguments for format

لماذا؟ يتم تحديد نوع (كثافة العمليات طويلة SZ، و٪ لتر في snprintf) وحجة في snprintf واحد فقط. أي شخص يمكن أن تساعدني؟ شكرا.

هل كانت مفيدة؟

المحلول

وشكل ينقصه الكتابة، لل هو "sizeof" التعديل. ينبغي أن يكون٪ دينار

نصائح أخرى

وboost::lexical_cast<string>(sz) هو أجمل بكثير، على أي حال.

وانظر لهذه القائمة من printf شكل محددات

وانها تعليق ل٪ ل هو:

<اقتباس فقرة>   

ويتم تفسير حجة كما طويل   صحيح أو عدد صحيح طويل غير موقعة لعدد صحيح   المحددات (ط، د، س، ش، س و X)، و   كحرف واسعة أو حرف واسعة   سلسلة لمحددات ج والصورة.

وsprintf الباحث (تشار * شارع، شار CONST * تنسيق، ...)؛

والأمر لا يتطلب طول "شارع"، كما الوسيطة الثانية.  اسم مؤشر سلسلة اسم / مجموعة يكفي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top