C-printf實現


 
        
void myprintf(const char *format,...)
{
    va_list argptr;//參數列表
    va_start(argptr, format);
    size_t ACTSIZE = _vscprintf(format, argptr);//內容長度,根據它給size賦值
    char*buffer = (char*)malloc(ACTSIZE + 1);//分配內存空間
    memset(buffer, 0, ACTSIZE + 1);//賦初值
    vsnprintf(buffer, ACTSIZE + 1, format, argptr);//將值加進去
           va_end(argptr);

    printf("%s\r\n", buffer);

    free(buffer);//釋放內存
    buffer = nullptr;

}

int main()
{
   myprintf("%s,%s","123","456");

   char s1tr[2000];
   for(int i =0;i<2000;i++)
   s1tr[i]='a';

   s1tr[1999]=NULL;

   myprintf("111 %s",s1tr);

   return 0;

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM