信息学奥赛IO三大法宝

news/2024/11/29 20:46:13/

 freopen,,fopen,ifstream/ofstream
1. 开始的时候freopen很直观,特别是改熟悉的键盘输入in(屏幕监控)和屏幕输出out,再直接。

xInOut01.cpp

# include<cstdio>
int main( ){freopen("in.txt", "r", stdin);freopen("out.txt", "w", stdout);	int temp,sum= 0;while (scanf("%d", &temp)==1) {sum=sum+temp;}		printf("%d\n",sum);fclose(stdin);fclose(stdout); return 0;
}

可以再简单点,用cin/cout

xInOut02.cpp

#include<cstdio>
#include<iostream>using namespace std;
int main( ){freopen("in.txt", "r", stdin);freopen("out.txt", "w", stdout);	int temp,sum= 0;while(cin>>temp){sum=sum+temp;}cout<<sum<<endl;fclose(stdin);fclose(stdout); return 0;
}

实际这个redirect重定向,就是用standIn键盘和standOut屏幕,注释的五行可以明确.

xInOut03.cpp

#include<iostream>
using namespace std;
int main()
{
//  FILE *fin, *fout;
//  fin=fopen("in.txt","rb");
//  fout=fopen("out.txt"," wb");int a,b,c;cin>>a>>b>>c;cout<<(a+b)/c<<endl;// fclose(stdin);
// fclose(stdout); return 0;
}

FILE *freopen(const char *filename, const char *mode, FILE *stream)
mode(6): r, w, a, r+, w+, a+
stream(5): stdin, stdout, stderr
用fopen是规矩,毕竟不再是初学的键盘屏幕。
FILE *fopen(const char *filename, const char *mode)
mode同前.。

xInOut04.cpp

#include<cstdio>
using namespace std;int main( ){FILE *fin, *fout;fin=fopen("in.txt","rb");             //rb可以fout=fopen("out.txt"," wb");    //wb可以int temp, sum=0;while(fscanf(fin,"%d", &temp)==1)sum=sum+temp;fprintf(fout,"%d\n", sum);fclose(fin);fclose(fout);return 0;	
}

怀念freopen,用FILE指针,把输入输出定向到文件。其中看不出fopen, 但对应的fclose还是用一下。

xInOut05.cpp

#include<cstdio>
#include<iostream>
using namespace std;int main( ){FILE *fin, *fout;fin=stdin;fout=stdout;freopen("in.txt", "r", stdin);freopen("out.txt", "w", stdout);int temp, sum=0;while(fscanf(fin,"%d", &temp)==1)sum=sum+temp;fprintf(fout,"%d\n", sum);fclose(stdin);fclose(stdout); return 0;	
}

用ifstream/ofstream/fstream(实际是三个)

*xInOut06.cpp

# include<fstream>
using namespace std; 
int main( ){ifstream fin("in.txt");ofstream fout("out.txt");int temp, sum =0;while (fin>>temp)sum=sum+temp;fout<<sum<<endl;fin.close();fout.close();return 0;	
}

这里直接是构造函数,实际实例化后该用open,close操作。
 

void open(const char *filename, ios::openmode mode);
mode(5):ios::app(append添加), ios::ate(a FILE to end找尾), ios::in(reading in读入), ios::out(writing out写出), ios::trunc(truncated清干净)---参数可结合如(ios::out|ios:trunc  清干净准备写)。

实际代码还想换成初期,把上面的注释并用define,可以又回到cin/cout的模样:

xInOut07.cpp

#include<fstream>
#include<iostream>
#define fin cin
#define fout coutusing namespace std; 
int main( ){//ifstream fin("in.txt");//ofstream fout("out.txt");int temp, sum =0;while (fin>>temp)sum=sum+temp;fout<<sum<<endl;//fin.close();//fout.close();return 0;	
}

最后in.txt和out.txt文件如下
**********************************in.txt***********************
1 2 3 4 5
*****************************************************************
******************************out.txt****************************
15
***************************************************************


http://www.ppmy.cn/news/939734.html

相关文章

五年级春期计算机教案,五年级下册信息技术教案

第八课 编辑你的文章 教材简析 本课是“文字世界”(上)单元的第二课。教材的内容主要是要求学生掌握文章编辑的基本方法&#xff0c;但这些看似简单的内容却在Office的操作中是至关重要的一部分&#xff0c;同时也是比较实用的内容&#xff0c;因此在课堂上必须要坚持精讲多做的…

2017年计算机二级有什么好处,2017年计算机二级考试备考的五大法宝

导语&#xff1a;导语&#xff1a;考试前如何调整好状态,每个人的一生都在经历各种各样的考试,我们无法逃避,只能沉着应对,调整好自己的状态,无忧考网。炎炎夏日无忧考网为您准备了考前的小绝招&#xff0c;轻松考试&#xff0c;圆满过关。 >>>2017年计算机等级考试备…

股市长线法宝

这是土盐的第104篇原创文章 1 大家好&#xff0c;我是土盐。 坚定持有需要技术和知识&#xff0c;也可以说法宝&#xff0c;投资是自己的事&#xff0c;做好自己。 股市长线法宝&#xff08;原书第5版&#xff09; 杰里米 J.西格尔 224个笔记 1982&#xff5e;2000年的超级大牛…

法宝合成时的五行位置分配是什么

法宝材料的五行位&#xff1a;龙筋 金天蚕丝 金千年阴沉木 木玄龟板 水麒麟血 水补天石 土金凤羽 土内丹的摆放位置&#xff1a;材料金水 内丹土位材料金木 内丹水位材料金土 内丹水位材料木水 内丹火位材料木土 内丹火位材料水土 内丹木位 转载于:https://www.cnblogs.com/wy…

C++初阶 - 3.类和对象(中)

目录 1.类的6个默认成员函数 2.构造函数 2.2特性 3.析构函数 3.1 概念 3.2 特性 4. 拷贝构造函数 4.1 概念 4.2 特征 5.赋值运算符重载 5.1运算符重载 5.2 赋值运算符重载 5.3 前置和后置重载 6.日期类的实现 7.const成员 8.取地址及const取地址操作符重载 1.类…

【Linux工具】编译器、调式器、项目自动化构建工具以及git的使用3(GDB调试器的基础使用)

【Linux工具】编译器、调式器、项目自动化构建工具以及git的使用3&#xff08;GDB调试器的基础使用&#xff09; 目录 【Linux工具】编译器、调式器、项目自动化构建工具以及git的使用3&#xff08;GDB调试器的基础使用&#xff09;背景gdb的一些指令gdb实际运用显示代码运行程…

固态硬盘的优点

固态硬盘与普通硬盘比较&#xff0c;拥有以下优点&#xff1a; 1. 启动快&#xff0c;没有电机加速旋转的过程。 2. 不用磁头&#xff0c;快速随机读取&#xff0c;读延迟极小。根据相关测试&#xff1a;两台电脑在同样配置的电脑下&#xff0c;搭载固态硬盘的笔记本从开机到出…

固态硬盘和机械硬盘有什么区别呢?

固态硬盘就是SSD硬盘 &#xff0c;而机械硬盘就是HHD硬盘。现在有很多人都选择使用固态硬盘了&#xff0c;那么为什么要选择固态硬盘呢&#xff0c;固态硬盘和普通的机械硬盘有什么区别呢? 下面我们就从性能&#xff0c;价格&#xff0c;容量等几个方面来分析固态硬盘和机械硬…