• 微信号
  • 微信号
您当前的位置:首页 > 学海无涯 > 茑语花香>C++ 文件输入输出

C++ 文件输入输出

孤峰 孤峰家 2023-09-22 125人阅读

今天来学习文件的输入输出,文件的处理非常的重要所以在这里讲一下

在大型考试中或是在使用大数据测试代码时,文件的输入输出是必要的或是方便的,所以这里很有必要来学习一下文件处理

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 位于 文件夹I123.txt 位于 文件夹C 中的情况,这时应该如何访问到 123.txt 呢,可以用到 " ../ " 来访问到上一级目录,它的用法跟 / 是一样的,就上面的问题,可以使用这样的相对路径来解决,即 " ../../123.txt "

文件输入输出的作用

文件输入输出解决了很多本来由窗口输入输出很麻烦的问题,例如在做一道题时,数据非常多,如果使用手逐字逐句的打下来,手不仅累还浪费了宝贵的时间 ( Ctrl+C & Ctrl +V 了解一下? )

让程序所执行的东西得以保存下来,方便下次使用,例如在保存程序的文件时,并不是保存在程序的 .exe 文件中的,而是保存在磁盘中的 .cpp 文件

转载:感谢您阅览,转载请注明文章出处“来源从小爱孤峰知识网:一个分享知识和生活随笔记录的知识小站”。

链接:C++ 文件输入输出http://www.gufeng7.com/niaolang/1858.html

联系:如果侵犯了你的权益请来信告知我们删除。邮箱:119882116@qq.com

标签: