作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个项目,我在其中使用了人员目录。在我的主课中,我调用 cout << myDirectory << endl;显示此目录中人员的完整列表。为此,我覆盖了目录类和人员类中的 << 运算符。
在 Directory 类中,我出于特定原因使用 Map,因此我以这种方式显示每个人:
std::ostream& operator<<(std::ostream& os, const T& myDirectory)
{
typedef map<Person, Location>::const_iterator Iterator;
for(Iterator it=myDirectory.m_directory.begin();it!=myDirectory.m_directory.end;++it){
os<<it->first<<endl;
}
return os;
为此,我还必须以这种方式重载 Person 类中的 << 运算符:
ostream& operator<<(std::ostream& os, const Person& p){
os << p.lastName << "," << p.firstName << endl;
return os;
}
我的问题是显示不正确。逗号在姓氏之前,姓氏和名字和种类合并在一起。例如,如果我的名字是 Jack Daniels,我会在输出中得到这个:
,Jackls
如果我使用 endl;在姓氏和名字之后效果很好。例如:
os << p.lastName << endl;
os << "," << p.firstName << endl;
我得到这个输出:
Daniels
,Jack
知道我做错了什么吗?
最佳答案
在这里猜测,因为您没有提供完整的示例来说明问题,但我认为您的姓氏末尾会有一个尾随的“返回”字符。
它输出“Daniels”并将光标移回行首,然后用“,Jack”覆盖它,因此输出将是“,Jackls”
关于c++ - ostream 不显示 proberly c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35852846/
我有一个项目,我在其中使用了人员目录。在我的主课中,我调用 cout ::const_iterator Iterator; for(Iterator it=myDirectory.m_direct
GNU GRUB(GRUB)是一个来自 GNU 项目的启动引导程序。它允许用户在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。 今年 6 月,由于上游 GRUB 引导程
我是一名优秀的程序员,十分优秀!