#include <stdio.h>
int main(){
printf("asd");
return 0;
}
任务是在不修改此程序,覆盖或使用define的情况下,在Windows环境中,此程序必须写出:Yourname asd Yourname。 有什么想法吗?
答案 0 :(得分:1)
你可以这样做(编辑为从stdin读取Yourname
):
#include <stdio.h>
#include <string.h>
int main(){
printf("asd");
return 0;
}
int printf(const char *__restrict __format, ...)
{
char str[106], scs[50];
scanf("%s", &scs);
strcpy(str,scs);
puts(strcat(strcat(strcat(strcat(str," "), __format)," "),scs));
return 1;
}
这是working demo。
答案 1 :(得分:0)
您可以通过简单的方式完成此操作。全局对象在静态内存区域创建,它们在执行main之前被分配和初始化,并在执行main之后被释放。以下是您问题的简单答案:
#include<iostream>
struct MyName {
public:
MyName() { printf("%s", "GaborRuszcsak\n"); }
~MyName() { printf("%s", "\nGaborRuszcsak\n"); }
};
MyName isGaborRuszcsak;
int main(int argc, char** argv){
printf("asd");
return 0;
}
希望有所帮助。