您的位置:首页 > 编程语言 > C语言/C++

C++实现C语言printf函数

2015-04-24 21:46 441 查看
//简单实现C语言中printf函数

#include<iostream>

#include<typeinfo>

#include<string.h>

using namespace std;

void print(const char* str)//处理只有字符串的时候

{

cout << str << endl;

}

template <class T, class... Args>

void print(const char* str, T t, Args... args)

{

if((*str) == '\0' || str == NULL)//退出递归条件

{

return;

}

if(*str == '%')

{

switch(*(++str))//这里只实现几个代表一下

{

case 'd':

if(strcmp(typeid(t).name(), "i"))

{

cout << "参数类型不匹配!" << endl;

return;

};

break;

case 'c':

if(strcmp(typeid(t).name(), "c"))

{

cout << "参数类型不匹配!" << endl;

return;

};

break;

default:;break;

}

cout << t;

print(++str, args...);

}

else if(*str == ' ')

{

cout << ' ';

print(++str, t, args...);

}

else

{

cout << *str;

print(++str, t, args...);

}

}

int main()

{



return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐