【发布时间】:2013-09-05 14:08:17
【问题描述】:
这是我的功能
ostream margain(std::string firstWord)
{
ostream x;
x << std::setw(20) << firstWord;
return x;
}
在main中我想使用如下函数
std::cout<< margain("start") << "````````````````````````````````````" << std::endl;
// print things out
//then
std::cout<< margain("End") << "````````````````````````````````````" << std::endl;
我得到输出,开始或结束没有显示,返回值为
0````````````````````````````````````
我该如何解决?为什么?
编辑: 我知道是函数造成的,因为如果我添加这个
cout
我修复了它,不是最好的方法,而是作为
调用函数为
保证金(std::cout,“结束”)
函数看起来像
ostream& margain(ostream& stream, std::string firstWord)
{
stream << std::left << std::setw(10) << firstWord;
return stream;
}
有人知道更好的方法吗?
【问题讨论】:
-
当您在margain中声明x时,这样做是否会发生编译器错误?当我这样做时,我被告知“std::basic_ostream<_elem>”出现错误,因为没有合适的默认构造函数可用。