做算法题测试程序时,从文件中读入测试用例或写入结果出到文件的方法
下面先介绍从文件中读入测试数据的方法(2行关键代码)
1.将输入的测试数据存放到 Data.txt 中,比如直接将下列数据保存在 Datax.txt(自己随便起名字)中(空格必须有,多少无所谓)
10.5 10
20.5 24.00
2 5.55
2.“r” 代表是 从文件中读入
3.stdin 是标准读入
4.Data.txt文件必须已经创建。注意,此处直接Data.txt这样写,前提是 该Data.txt文件在 当前要运行的.cpp 文件的相同目录下,是相对地址(强烈建议);此处也可以用绝对地址,比如改成 freopen("G:\\Data.txt","r",stdin); (即直接在G盘下创建该xtx文件)
#include <algorithm> //头文件
#include <stdio.h>
using namespace std;
int main()
{
freopen("Data.txt","r",stdin);// 按顺序读入(仅此一行)
double ans = 0;
double a,b;
while(scanf("%lf%lf",&a,&b)!=EOF){
ans += a*b;
}
printf("%lf\n",ans);
return 0; //最终的结果是:608.100000
}
下面介绍将程序运行结果保存到文件(6行关键代码)
1.temp.txt 是目的文件名(文件名是自己随便起的,但是扩展名不要改,要用txt,因为他最稳定)
2.无论在当前文件夹(即你正在运行的 .cpp 文件所在位置)之下有没有 temp.txt 文件,无则---系统会自动创建,有则---原来temp.txt文件中的内容会被全部更新。
#include <iostream>
#include <fstream> //头文件
using namespace std;
// 求组合数
int C(int n,int m)
{
if(m<n-m) m=n-m; //减少计算量。因为C5 3 == C5 2 .其实 m<=n-m 也可以,结果也正确
long long ans=1; //C5 2 =A5 2 /A2 2 ==5*4/1*2
for(int i=m+1;i<=n;i++)
ans=ans*i;
for(int i=1;i<=n-m;i++)
ans=ans/i;
return ans;
}
int main()
{
ofstream myfile;
myfile.open("temp.txt");
for(int i=1;i<8;i++){
for(int j=1;j<=i;j++){
myfile<<"C ["<<i<<','<<j<<"] = "<<C(i,j)<<endl; //其实就是代替了 cout 的位置
}
}
myfile<<"上面是我的打表结果"<<endl;
myfile.close(); //关闭文件
return 0;
}
3.运行结果如下
如果觉得有用,就请赞我一个吧~
转载请注明出处!http://blog.csdn.net/lalala8866/article/details/76554721
本文作者:Cosmerudit
本文链接:https://www.cnblogs.com/cosmerudit/p/16484776.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步