我正在尝试创建一个跨多个文件的程序,读取时间,但我在显示所需格式的时间方面遇到了问题。更具体地说,setfill
似乎给我带来了麻烦。
以下是编译时我收到的非常长的错误消息的开头:
error: no match for ‘operator<<’ in ‘std::operator<< [with _CharT = char,
_Traits = std::char_traits<char>](((std::basic_ostream<char,
std::char_traits<char> >&)(& std::cout)), std::setw(2)) << std::setfill
[with _CharT = const char*](((const char*)"0"))’
现在,只有当我在成员函数中使用
setfill
时,才会出现此消息。如果我删除setfill
,则输出没有问题,只是格式不正确。该成员函数为:
Void Time::print()
{
cout << setw (2) << setfill ("0") << hours << ":";
cout << setw (2) << setfill ("0") << minutes << ":";
cout << setw (2) << setfill ("0") << seconds << endl;
}
要明确的是,我已经包含了和,它们本身没有任何问题。
谢谢。
"0"
是一个const char *
而不是char *
。 - Björn Pollex