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