c++如何把输出结果写到文本文件内

#include <cstdio>

void hannuo(char x,char y,char z,int no)
{
if(no<=0) return;
hannuo(x,z,y,no-1);
printf("第%d个盘子no.%c---->no.%c\n",no,x,z);
hannuo(y,x,z,no-1);
}

int main()
{
int no=7;
hannuo('A','B','C',no);
}

首先声明一个类对象。ofstream fout;
这就可以了,要打开一个文件的话,,必须像这样调用ofstream::open()。
fout.open("output.txt");
也可以把文件名作为构造参数来打开一个文件.
ofstream fout("output.txt");
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-02-20
#include<stdio.h>
void hannuo(char x,char y,char z,int no)
{
if(no<=0) return;
hannuo(x,z,y,no-1);
printf("第%d个盘子no.%c---->no.%c\n",no,x,z);
hannuo(y,x,z,no-1);
}

int main()
{
int no=7;
freopen("C:\\a.txt","w",stdout);//写到C盘目录下的a.txt中
hannuo('A','B','C',no);
}追问

c++大哥

追答

不会C++。实现就行了啊,管他C,C++,C也能在C++里面运行的,可以混用

第2个回答  2012-02-20
如果不用再次编写代码,你就在CMD输入:a >n.txt
(如你的程序为a.exe)
就可以把结果输出到n.txt中。

如果要编写代码:
void hannuo(char x,char y,char z,int no)
{
FILE *fp;
if(no<=0) return;

hannuo(x,z,y,no-1);
fp=fopen("n.txt","a+");
fprintf(fp,"第%d个盘子no.%c---->no.%c\n",no,x,z);
fclose(fp);
hannuo(y,x,z,no-1);
}
第3个回答  2012-02-20
ostream FileOpen("文件名");
FileOpen.Write(Buffer,BufferLen);
FileOpen.Close();

这么写是C++的方法追问

能写全吗?

追答

还要怎么写全?

追问

与我的代码融为一体

追答

#include
#include
using namespace std;
//你的函数没有传递参数,所以我只能用全局的变量。
ofstream FileOpen;
char Buffer[1024];
void hannuo(char x,char y,char z,int no)
{
if(nono.%c\n",no,x,z);
//把你需要写入的东西先弄到一个中间数组中。
sprintf(Buffer,"第%d个盘子no.%c---->no.%c\n",no,x,z);
//把中间数组写入到文件中。
FileOpen.write(Buffer,strlen(Buffer));
hannuo(y,x,z,no-1);
}
int main()
{
//这个result.txt在你的工程目录下生成的。
FileOpen.open("Result.txt");
int no=7;
hannuo('A','B','C',no);
}
VS2010可以运行。

本回答被提问者采纳
第4个回答  2012-02-20
#include <stdio.h>
void hannuo(char x,char y,char z,int no,FILE * fp)
{
if(no<=0) return;
hannuo(x,z,y,no-1,fp);
fprintf(fp,"第%d个盘子no.%c---->no.%c\n",no,x,z); //写文件
hannuo(y,x,z,no-1,fp);
}

int main()
{
FILE * fp=fopen("dat.txt","w+"); //文件名dat.txt
int no=7;
hannuo('A','B','C',no,fp);
fclose(fp);
}
相似回答