printf
함수를 C++
에 빌드하려고했습니다. 그것은 효과가 있었지만, int
과 float
을 인쇄 할 때 나는 입력 한 값에 0
을 얻는다.C++ cout이 잘못된 값을 인쇄 중입니다.
#include <iostream>
#include <stdarg.h>
using namespace std;
void printf1(const char* varlist, ...)
{
int i = 0;
va_list Paramters;
va_start(Paramters, varlist);
while (varlist[i] != '\0')
{
if (varlist[i] == '%')
{
switch (varlist[i + 1])
{
case 's':
cout << va_arg(Paramters, const char*);
cout << ' ';
break;
case 'i':
cout << va_arg(Paramters, int);
cout << ' ';
break;
case 'f':
cout << va_arg(Paramters, float);
cout << ' ';
break;
}
}
++i;
}
va_end(Paramters);
cout << endl;
}
int main()
{
float f = 3.5;
printf1("%f", f);
int num = 2;
printf1("%i", num);
return 0;
}
//0
//0
//Press any key to continue . . .
불량 띄우기는 유감이지만 여기에 복사하여 붙여 넣는 것은 이상합니다.
_printf 기능을 ++ _ 이유는 무엇입니까? 왜 –
std :: cout ...을 사용하는 printf 함수입니다. 원래 – Treycos
그것은 할당되었습니다. 잘 나는 당신이 printf에 화를 내기 때문에 싫어하는 것을 두는 것을 알지 못했다. – Rokni