在运行C++时,怎么把结果输出到已知的文本里

2024-11-15 20:24:57
推荐回答(5个)
回答1:

如果在头文件不想加上一些其他的东西,那么推荐用freopen
使用方法如下:
main()
{
//第一行这里开始写
freopen("out.txt","w",stdout);
/*
"out.txt"是指输出文件名字,当前目录下不存在该文件时会自行创建。同时"w"代表write,stdout是指标准输出。
如果要从文件输入,请在这一行的前面加上
freopen("in.txt","r",stdin);
*/
}

这种方法使用了之后将无法停止,这整个程序都将只能从文件【输入或输出】(加了或这是因为允许使用单个freopen)

还有一种,使用了
#include
这个头文件。

#include
using namespace std;//用了这个头文件,那么这行一定要写
main()
{
ifstream fin("in.txt");//只要输出的话,这行请不要写上。用了之后cin>>要改为fin>>
ifstream fout("out.txt");//只要输入的话,这行请不要写上。用了之后cout<<要改为fout<<
fin.close();//关闭文件输入
fout.close();//关闭文件输出
}
上面这种适用于使用头文件的人,单个输入或输出同上

使用c语言来输入输出的,不用加头文件就可以,改成下面这种
#include "stdio.h"
main()
{
FILE *in;//注意大写
FILE *out;//同上
in=fopen("in.txt","r");
out=fopen("out.txt","w");
//scanf函数改成fscanf(in, " " , );的格式
//printf函数改成fprintf(out, " ", );的格式
fclose(in);//关闭文件输入
fclose(out);//关闭文件输出
}
单个输入或输出同上。

回答2:

对流进行重定向即可,内容就会到文本里面:
#include
#include
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
ofstream log("foo.txt");
streambuf * oldbuf = cout.rdbuf(log.rdbuf());
cout << "重定向的内容/n" ;
return 0;
}

回答3:

在主函数里面加
freopen("1.txt","at",stdout);

1.txt 默认在当前文件夹,如果不存在就会创立新的1.txt文件,"1.txt"引号里面也可以带路劲

回答4:

输出流,书本里都又的,吧字符串写到文件里

回答5:

ofstream fout("out.txt", ios::app);
fout用起来和cout差不多