如何用c++输出该程序本身的源代码?

来源:百度知道 编辑:UC知道 时间:2024/06/27 09:51:29
自己闲着没事用visual C++编了一个小程序
后来觉得这个程序还不错,想在这个程序中加一个功能
这个功能是输出自己的源代码,这样别人就能直到这个程序的原理
代码太长了,想了半天都不知道怎么弄
我是初学者中的初学者,毕竟智商有限^_^
于是在这里问一下大家,帮助一下,谢谢各位高手...

#include <iostream.h>
#include <math.h>
int m, n, p, q;
int a, b, c;
static void CoutInMathsWay (int m, int n, int p, int q);
static int ReturnBiggest (int a, int b, int c);
void main () {
cout <<"十字相乘法因式分解小程序\n" <<"语言: Visual C++\n";
Index:
short check;
cout <<"查看源码请输入1\n" <<"运行程序请输入2\n";
cin >>check;
if (check==1) {cout <<“!!!!!在这里添加输出程序本身源代码的功能!!!!!!”<<endl; goto Index;};
if (check==2) {goto begin;} else {cout <<"输入错误,请重新输入..." <<endl; goto Index;};
begin:
cout <<"请输入代数式ax^2+bx+c中a,b,c的值..." <<endl;
cout <<"a="; cin >>a;
cout <<"

测试如下 自己根据需要添加到相应位置就可以了
#include <iostream>
#include<fstream>
using namespace std;
int main()
{
ifstream infile("baidu.cpp",ios::binary);
char ch;
while(infile.peek()!=EOF)
{
infile.read(&ch,sizeof(ch));
cout<<ch;
}
return 0;
}
/////////////////输出//////////////////////////////////

#include <iostream>
#include<fstream>
using namespace std;
int main()
{
ifstream infile("baidu.cpp",ios::binary);
char ch;
while(infile.peek()!=EOF)
{
infile.read(&ch,sizeof(ch));
cout<<ch;
}
return 0;
}
请按任意键继续. . .

可以读入源文件并打印出来。
有一个办法可以比较接近你的要求( 看下面的例子,输入1回车,就可以打印出程序本身来)

#define SHOW_CODE(code) char CodeString[]= #code; code

SHOW_CODE(
int main()
{
char c