C++ 更改C++;在不更改main()函数的情况下输出 #包括 void main() { 您是否需要通过调用另一个函数或更改文本来更改main。既然程序的主要输出是main(),
您能更精确一点吗 你希望那段代码的输出是“我爱你”而不是“爱”C++ 更改C++;在不更改main()函数的情况下输出 #包括 void main() { 您是否需要通过调用另一个函数或更改文本来更改main。既然程序的主要输出是main(),,c++,C++,您能更精确一点吗 你希望那段代码的输出是“我爱你”而不是“爱” 编辑:我不认为在不更改main()中至少一行代码的情况下不能。您可以从cout更改。您的主函数不应该返回int吗?您可能需要更改方法,或者编写另一个将此方法导入的程序,但这是更改简单字符串的最全面的方法…该代码没有使用std,但无论如何都需要围绕cout和r编写自己的包装器如果有,请删除using std,并在定义包装的地方替换为using mystd。我想您可以编写一个操作符好的,修复您的主函数和iostream.h…这就是方法
编辑:我不认为在不更改main()中至少一行代码的情况下不能。您可以从cout更改。您的主函数不应该返回int吗?您可能需要更改方法,或者编写另一个将此方法导入的程序,但这是更改简单字符串的最全面的方法…该代码没有使用std,但无论如何都需要围绕cout和r编写自己的包装器如果有,请删除using std,并在定义包装的地方替换为using mystd。我想您可以编写一个操作符好的,修复您的主函数和iostream.h…这就是方法
#include<iostream.h>
void main()
{
cout<<"Love";
}
#包括
//确保在使用std::cout时构造它
//在main被调用之前-thxx到@chappar
std::ios_base::Init stream_初始值设定项;
结构调用程序{
调用方(){std::cout如下所示:
#include <iostream>
// to make sure std::cout is constructed when we use it
// before main was called - thxx to @chappar
std::ios_base::Init stream_initializer;
struct caller {
caller() { std::cout << "I "; }
~caller() { std::cout << " You"; }
} c;
// ohh well, for the br0ken main function
using std::cout;
int main()
{
cout<<"Love";
}
#包括
int main(){
std::cout#包括
类tclass
{
公众:
void操作符不像litb那样优雅,而是一种替代方法:
#include <iostream>
class tclass
{
public:
void operator <<(char *s)
{
std::cout<<"I"<<s<<"You"<<std::endl;
}
};
tclass cout;
int main()
{
cout<<"love";
}
#包括
使用名称空间std;
int foo()
{
Cuth> P>的经验是C++可以通过静态构造函数/析构函数来执行主代码前后的代码,例如LITB .< /P > 的代码不象LITB那样优雅,但它工作
#include <iostream>
using namespace std;
int foo()
{
cout << "I Love You" << endl;
return cout.rdbuf(0);
}
int i = foo();
int main()
{
cout << "Love" << endl;
}
#包括
#包括
#包括
#定义cout printf(“我爱你”\n);std::ostringstream os;os
int main()
{
假设这是一个类赋值,我敢打赌,这个想法是你可以重写<代码> IoSurviv.H./Cube >,因为C++不把它当作特殊的(对于某些特殊的定义)。 我们也可以这样做:
#include <iostream>
#include <cstdio>
#include <sstream>
#define cout printf("I love you\n"); std::ostringstream os; os
int main()
{
cout << "love";
}
#包括
#包括
使用名称空间std;
国际货币基金组织(国际货币基金组织){
cout我真的很惊讶没有人建议#定义“Love”“I Love you”…)是的..我需要你说的输出..但唯一的条件是main()中连一行代码都不会更改。呃,你可以在全局命名空间中定义你自己的变量'cout',并让它打印“I Love you”我的意思是#include int main(){std::cout回答不好,一点也不好笑。如果一个2或3位数的声誉持有者发布这个答案,他会得到-10。这对你来说是双重标准!:-@realed.:[需要引用]@比努:但你为什么要这样做?如果你这样做,你就学会了一些关于C++的重要的东西……实际上我不理解……DMCKE你能更具体吗?@彬:嗯,LIBT解释了它。它是关于构造函数和析构函数运行的,以及代码> C>代码>的生命周期。尝试用C,D替换“C”;看看发生了什么……LITB,答案可能不总是在工作。在你的调用对象之前有没有保证CUT会被构建?C++的命令规定CUT,CIN会在所有的用户全局对象之前创建吗?谢谢你,SyDoW:我几天前读到C++ 1x保证了CUT和朋友是C。包含在#include之后构建。因此,我们不再需要流初始值设定项。在此之前,我将保留它,当然:P#include#include#include使用名称空间std;#define cout printf(“我爱你”);ostringstream os;os/*newline*/int main(){cout@rlbond-erm,如果你在做printf(),那不是会崩溃得很厉害吗?;即使这是在做作业时作弊,这实际上是一个问题,你可以从中学习一些东西,正如litb的回答所示。@Hanno:一个好的答案并不一定意味着一个好的问题。@Mehrdad:这个问题不一定是好的(甚至是好的)不过,为了恰当起见。我倾向于重新打开这个。只是,我更愿意先修复它,我不太明白怎么做…@dmckee:同意。但我认为根本不应该把litb令人敬畏的回答归功于这个问题。投票重新打开,这显然是一个真正的问题。rdbuf(0)做什么?你的程序打印“爱”吗在打印“我爱你”之后?如果是这样,我们是否可以在foo()内终止程序而不必执行main()呢?它通过将cout重定向为nothing来隐藏“爱”的输出。它只打印“我爱你”。非常聪明,不需要用特别的方法来做,用简单的方法来做,这就是你所做的。这和litb的答案一样好,如果没有那么酷的话。确实做得很好!实际上,它会产生错误的输出。如果标准确实处理iostream(和所有其他标准头)不同的是。编译器只允许在代码中插入定义,而不实际包含头文件。同样,即使允许编译器这样做,大多数当前的实现也不允许。无论如何,尖括号的使用有着具体的含义(对于某些编译器,它将首先在编译器和系统范围目录中搜索文件,然后在本地搜索),然后再次(再次)其他编译器将尖括号和双引号同等对待。换句话说,“对于‘特殊’的某些定义。”@ DavidRodr·Guez Dr.BeaBeas:但不是<代码> IoSturn.H./C>,它不是库的一部分。在C++中,()是一个特殊的函数,也是唯一允许标准声明返回类型而实际上不返回任何东西的(在这种情况下,标准称编译器将像用户返回的0那样执行)。@DavidRodríguez dribeas:尽管如此,它仍然需要返回类型int
。这不起作用,因为“Love”是一个字符串,而不是标识符或符号名。所以你的答案是“去看看那边的另一个答案”?-1,因为这不是真的。
#include <iostream>
#include <cstdio>
#include <sstream>
#define cout printf("I love you\n"); std::ostringstream os; os
int main()
{
cout << "love";
}
#include <iostream>
#include <cstdlib>
using namespace std;
int fnfoo(int inum){
cout << "I Love You" << endl;
return (exit(0),inum);
}
int dummy = fnfoo(5);
int main()
{
cout << "Love" << endl;
}