gpt4 book ai didi

c++ - 成员函数中的 setfill 问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:03:03 26 4
gpt4 key购买 nike

我正在尝试创建一个基于多个文件的程序来读取时间,但我无法以所需的格式显示时间。更具体地说,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;
}

需要说明的是,我包含了 iomanip 并且 setw 本身没有问题。

谢谢。

最佳答案

此外,如果您使用的是 wstringstream,setfill 需要 wchar。

比较

std::stringstream ss;
ss << std::setw(2) << std::setfill('0') << hours << ":";

std::wstringstream ss;
ss << std::setw(2) << std::setfill(L'0') << hours << ":";

关于c++ - 成员函数中的 setfill 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5496706/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com