C++文件重定向练习

登录以参加训练计划

前言

使用c++一段时间后,程序输入数据想从某文件中读入数据(如:data.in),而不是在小黑窗里从键盘输入;程序数据输出想直接输出到某个文件(如:data.out),而不是输出到小黑窗里,需要实现这样的功能就需要用到文件重定向。

C++中文件重定向有多种,这里介绍常用的也是最简单的一种方式,使用使用freopen()函数,这种方式是C语言版本,需要头文件#include<stdio.h>支持。

一、函数声明:

FILE *freopen( const char *filename, const char *mode, FILE *stream );

二、freopen()函数使用
这里以A+B为例,程序从文件data.in读入,程序的数据输出到文件data.out

#include<stdio.h> 
int main(){
    freopen("data.in","r",stdin);    //关联输入文件
    freopen("data.out","w",stdout);  //关联输出文件
 
    int a,b;
    scanf("%d %d",&a,&b);
    printf("%d\n",a+b);
 
    fclose(stdin);//关闭文件 
    fclose(stdout);//关闭文件 
}

注意:
1、实际使用过程中,cin,cout也可以用freopen重定向;#include 也可以用freopen函数
2、如果用freopen多次重定向 cin,最好在前面加cin.clear(),清空缓存,否则读入数据有错误
3、关联的输入文件需要手动创建(如:data.in),关联的输出文件程序会自动创建(如:data.out)

章节 1. 初级进阶

开放

题目 尝试 AC 难度
10   【入门】三角形类别 237 55 7
11   【入门】求阶乘和 144 47 6
18   【入门】兑换硬币 88 30 6
44   【入门】汉译英 137 42 6
49   【入门】字符图形9-数字正三角 42 20 4
50   【入门】数组逆序 56 35 2
51   【入门】词组缩写 48 17 6
54   【入门】求表达式和Ⅲ 93 22 7
62   【入门】判断质数 131 38 6
101   【入门】时间差 31 15 5
110   【入门】求表达式和Ⅳ 50 16 6
115   【入门】数字和 62 18 6

章节 2. 中级进阶

开放

题目 尝试 AC 难度
183   【基础】去重排序 38 13 6
253   【入门】寻找肇事司机 11 6 9
385    [NOIP2005 普及组] 陶陶摘苹果 92 45 4
1093   【基础】七位完全平方数 23 5 8
1099   【基础】阅读大赛 4 3 10

章节 3. 高级进阶

开放

题目 尝试 AC 难度
1989   【深基5.习10】汉字压缩技术(编码) 16 1 10
1876   [CSP-J 2021] 分糖果 101 18 8
1877   [CSP-J 2021] 插入排序 39 4 9
1878   [CSP-J 2021] 网络连接 24 1 10
1879   [CSP-J 2021] 小熊的果篮 21 3 9
1887   「CSP-S 2020」贪吃蛇 7 2 10
 
参加人数
45
创建人