C++ 文件输入输出
今天来学习文件的输入输出,文件的处理非常的重要所以在这里讲一下
在大型考试中或是在使用大数据测试代码时,文件的输入输出是必要的或是方便的,所以这里很有必要来学习一下文件处理
freopen
public FILE *__cdecl freopen (const char * __restrict__ Filename, const char * __restrict__ _Mode, FILE * __restrict__ _File) #include<cstdio>freopen 函数的三个空位都要填充
第一个是要填充文件的路径,可是是绝对路径或者是相对路径,类型为 char 数组
第二个是模式,就是分为读入模式和输出模式,读入模式为字符 " r " ( read ),输出模式为字符 " w " ( write )
第三个先不用管,可以理解为改变了读入或输出的方向,由从窗口中读入或输出改变成为了由文件读入或输出,固定填写 stdin 或 stdout 即可
freopen 非常方便调试,在使用时无需改变原本的代码,只需在前面上即可
就像这样的代码
#include<iostream>
#include<cstdio>
using namespace std;
int **in()
{
int i,n,sum=0;
scanf("%d",&n);
for(i=1;i<=n;++i) sum+=i;
printf("%d\n",sum);
return 0;
}
一个非常简单的求由 1 ~ n 的数的和的代码
如果要利用文件进行输入要怎么办
#include<iostream>
#include<cstdio>
using namespace std;
int **in()
{
int i,n,sum=0;
freopen("D:/123.in","r",stdin);//绝对路径+"r"+stdin
freopen("D:/123.out","w",stdout);//绝对路径+"w"+stdout
scanf("%d",&n);
for(i=1;i<=n;++i) sum+=i;//中间不用动
printf("%d\n",sum);
fclose(stdin);
fclose(stdout);//待会会讲到
return 0;
}
" r " 是一定要跟 stdin 配合在一起的," w " 也是一定要跟 stdout 配合在一起的
如果不想要文件输入时,可以将 freopen 注释掉进行编译,这样就可以更加方便的测试了
读入和输出是互不相干的,可以只用文件读入或输出都是可以的
fclose
public int __cdel fclose (FILE *_File)可以用 fclose 来实现,fclose 就像是一个重置的按钮,将读入的方向重新变回窗口读入,当然一般一个程序都会使用到一个方式,所以可能不会需要重新使用窗口进行读入,但是这就像使用在主程序使用 return 0 一样,虽然也可以不要,但是养成一个好的习惯也没错,有始有终
所以在用完之后较好加上 fclose
其中,fclose 填的为需要关闭的方式,可以填 stdin 或 stdout,用于关闭指定的文件处理方式
fclose(stdin); fclose(stdout);这样就能够完整地控制文件的输入输出了
绝对路径&相对路径
绝对路径就是 指定文件 在硬盘上 真实存在的路径,出发点就是根目录
相对路径就是 指定文件 相对于 自身所存在的路径,出发点就是自身
例如我们现在有这多个文件夹,这里用树型结构来表示各个文件夹之间的关系
10个文件夹
其中,假设文件 123.txt 在 文件夹H 中,而 程序.exe 位于 文件夹B 中
那么,相对于 程序.exe,123.txt 在哪里
很简单,路径为 " 文件夹E / 文件夹H / 123.txt ",这就是相对路径,相对路径最终要的就是相对于某个文件
那么,如果 123.txt 的绝对路径又是什么呢
假设 文件夹A 是直属 本地磁盘D 中的文件夹,那么
123.txt 的路径就不用再关系 程序.exe 在哪里了,路径为 " D : / 文件夹A / 文件夹B / 文件夹E / 文件夹H / 123.txt ",这就是绝对路径,绝对路径最重要的就是确定根目录
上级目录
而在文件夹中,可能会出现例如 程序.exe 位于 文件夹I 而 123.txt 位于 文件夹C 中的情况,这时应该如何访问到 123.txt 呢,可以用到 " ../ " 来访问到上一级目录,它的用法跟 / 是一样的,就上面的问题,可以使用这样的相对路径来解决,即 " ../../123.txt "
文件输入输出的作用
文件输入输出解决了很多本来由窗口输入输出很麻烦的问题,例如在做一道题时,数据非常多,如果使用手逐字逐句的打下来,手不仅累还浪费了宝贵的时间 ( Ctrl+C & Ctrl +V 了解一下? )
让程序所执行的东西得以保存下来,方便下次使用,例如在保存程序的文件时,并不是保存在程序的 .exe 文件中的,而是保存在磁盘中的 .cpp 文件
文档下载
转载:感谢您阅览,转载请注明文章出处“来源从小爱孤峰知识网:一个分享知识和生活随笔记录的知识小站”。
链接:C++ 文件输入输出http://www.gufeng7.com/niaolang/1858.html
联系:如果侵犯了你的权益请来信告知我们删除。邮箱:119882116@qq.com
上一篇: C++ 结构体&指针
下一篇: C++ 基础算法 - 贪心算法