Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有通用格式说明符的Printf < >我使用模板T创建了C++类 我想知道是否有任何格式说明符可以打印或将任何值转换为其格式 template <typename T> void AssertAreEqual(T t_Expected,T t_Actual, int line){ if (t_Expected != t_Actual) printf("FAIL - Line < %d > - Expected value does not match with expected\tExpected: < %d > Actual < %d >\n",line,t_Expected,t_Actual); } 模板 无效资产相等(预期为T T_,实际为T T_,整数行){ 如果(预计t_!=实际t_) printf(“失败-行-预期值与预期值不匹配\t预期值:实际值\n”,行,预期值,实际值); }_C++_Templates_Formatting - Fatal编程技术网

带有通用格式说明符的Printf < >我使用模板T创建了C++类 我想知道是否有任何格式说明符可以打印或将任何值转换为其格式 template <typename T> void AssertAreEqual(T t_Expected,T t_Actual, int line){ if (t_Expected != t_Actual) printf("FAIL - Line < %d > - Expected value does not match with expected\tExpected: < %d > Actual < %d >\n",line,t_Expected,t_Actual); } 模板 无效资产相等(预期为T T_,实际为T T_,整数行){ 如果(预计t_!=实际t_) printf(“失败-行-预期值与预期值不匹配\t预期值:实际值\n”,行,预期值,实际值); }

带有通用格式说明符的Printf < >我使用模板T创建了C++类 我想知道是否有任何格式说明符可以打印或将任何值转换为其格式 template <typename T> void AssertAreEqual(T t_Expected,T t_Actual, int line){ if (t_Expected != t_Actual) printf("FAIL - Line < %d > - Expected value does not match with expected\tExpected: < %d > Actual < %d >\n",line,t_Expected,t_Actual); } 模板 无效资产相等(预期为T T_,实际为T T_,整数行){ 如果(预计t_!=实际t_) printf(“失败-行-预期值与预期值不匹配\t预期值:实际值\n”,行,预期值,实际值); },c++,templates,formatting,C++,Templates,Formatting,例如:我希望有一个全局或通用格式说明符而不是%d,以便能够打印字符串或字符*,而printf是可变的,它依赖于您告诉它您要打印什么。据我所知,没有办法告诉它去解决它 您可以通过使用来颠覆问题。 运算符肯定格式说明符(如%d和%s)的全部要点是,它们分别打印整数和字符串,并通过知道它们可以应用到的对象类型来执行此操作?为什么不使用cout或stringstream?@DmytroDadyka:Turtle Wax..抱歉,我在下面做得更好:std::clog和std:wclog是可以用来获取重要信

例如:我希望有一个全局或通用格式说明符而不是%d,以便能够打印字符串或字符*

,而
printf
是可变的,它依赖于您告诉它您要打印什么。据我所知,没有办法告诉它去解决它

您可以通过使用来颠覆问题。
运算符肯定格式说明符(如
%d
%s
)的全部要点是,它们分别打印整数和字符串,并通过知道它们可以应用到的对象类型来执行此操作?为什么不使用cout或stringstream?@DmytroDadyka:Turtle Wax..抱歉,我在下面做得更好:
std::clog
std:wclog
是可以用来获取重要信息的流
std:cerr
std::flush
将损坏日志记录。通常,错误消息应该转到
std::cerr
。是的,或者对于交错日志记录,
std::clog
/
std::wclog
@PeteBecker我已经升级使用
std::cerr
template <typename T>
void AssertAreEqual(T t_Expected,T t_Actual, int line){
if (t_Expected != t_Actual)
    std::cerr << "FAIL - Line < " << line << " > - Expected value does not match with expected\tExpected: < " << t_Expected << " > Actual < " t_Actual << " >\n";
}