当前位置:首页 > C++知识 > 正文内容

信息学奥赛中文件流的写法

亿万年的星光4年前 (2021-04-03)C++知识1557




头文件

#include<cstdio>

也可以用万能头


格式如下:

int main(){
	freopen("xxxx.in","r",stdin);
	freopen("xxxx.out","w",stdout);	
	
	/*代码*/
	fclose(stdin);
	fclose(stdout);
	retrun 0; 
}



其中, r是read的缩写,w是write的缩写。

xxxx就是你要替换掉的内容,比如下面这道题。


可以看到一共四道题,每道题目都有一个英文名字。而且给出了输入文件名和输出文件名。

对于第一题成绩来说,我们的代码应该如下:

int main(){
	freopen("score.in","r",stdin);
	freopen("score.out","w",stdout);	
	
	/*你的代码*/
	fclose(stdin);
	fclose(stdout);
	retrun 0; 
}


对于第二题,应该 如下:

int main(){
	freopen("librarian.in","r",stdin);
	freopen("librarian.out","w",stdout);	
	
	/*你的代码*/
	fclose(stdin);
	fclose(stdout);
	retrun 0; 
}


需要注意的是,如果你写了文件流,去调试代码的时候,你是无法输入的。所以,我们在测试我们代码的时候会把文件流暂时注释掉,比如下面这样:

int main(){
	//freopen("score.in","r",stdin);
	//freopen("score.out","w",stdout);	
	
	/*你的代码*/
	//fclose(stdin);
	//fclose(stdout);
	retrun 0; 
}

等觉得程序没有问题了,可以提交了,就取消注释即可。

int main(){
	freopen("score.in","r",stdin);
	freopen("score.out","w",stdout);	
	
	/*你的代码*/
	fclose(stdin);
	fclose(stdout);
	retrun 0; 
}


扫描二维码推送至手机访问。

版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

标签: 文件流
分享给朋友:

相关文章

数组的不确定长度输入

0.前言我们在学习数组的时候一般都会告诉你数组的长度,然后for循环去遍历。但是有一类问题是没有n的,也就是没有告诉长度的。1.方法第一种:(数组)#include<iostream>...

【题解】士兵训练

【题目描述】某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报到三的出列,...

CSP-J2021年普及组复赛T2——插入排序

CSP-J2021年普及组复赛T2——插入排序

【题目描述】插入排序是一种非常常见且简单的排序算法。小 Z 是一名大一的新生,今天 H 老 师刚刚在上课的时候讲了插入排序算法。 假设比较两个元素的时间为 O(1),则插入排序可以以 O(n 2...

【数据结构】并查集2

【数据结构】并查集2

上一篇文章,简单介绍了并查集。这篇文章,介绍一下并查集的改进以及优化。find函数的优化(路径压缩)因为并查集的merge操作:void merge(int a, int...

如何判断回文数/回文串

所谓回文,就是从左往右读和从右往左读都是一样的,这样的数字或者字符称为回文数/回文字符。做题的时候经常能看到判断回文操作。判断回文的一般有两种,一种是数字类型,一种是字符类型。两种分别介绍一下。一、回...

【题解】均分纸牌

【题目描述】有n堆纸牌,编号分别为 1,2,…, n。每堆上有若干张,但纸牌总数必为n的倍数。可以在任一堆上取若干张纸牌,然后移动。移牌规则为:在编号为1的堆上取的纸牌,只能移到编号为 2 的堆上;在...