C++蓝桥等考导学/十六级:结构体&指针/之四:(16)文件流重定向

一、观看视频

01】文件系统

02】文件流重定向

二、研读学生讲义

【学生讲义】01】文件系统【学生讲义】【02】文件流重定向

三、练习题(不清楚回头查看有关视频或讲义)

01】有关文件的描述,错误的是:①文件是存放在内存上的一组相关信息的集合。②文件中的信息可以是文字、图形、图像、声音等,也可以是一个程序。
③每个文件必须有名字,操作系统对文件的组织和管理都是按文件名进行的。
02】文件相关的概念,错误的是:①文件名
②文件类型
③文件属地④文件操作
03】有关文件名的描述,错误的是:
①文件名一般分为“主文件名”和“扩展名”两部分。
②书写时中间用“.”隔开,例如“abc.doc”,其中,文件名为“abc”,扩展名为"doc"。
③文件名可以是汉字、英文字母、数字、#$@!%-~{}^、甚至是空格。
④禁止使用的字符有:<>/\:*?|"。
⑤文件扩展名主要用来区分文件的类型。
⑥文件扩展名都是计算机系统规定好的,用户不可以自行修改。
⑦UNIX/Linux中的文件名区分大小写,但Windows中不区分。
04】下面哪一项不属文件属性:
①文件大小
②占用空间
③文件建立或修改的日期和时间
④文件建立或修改的电脑设备
⑤所有者信息⑥只读:文件只能读,不能修改或删除
⑦隐藏:在一般的情况下不显示
05】下面扩展名的文件类型说明:
①BAT
②EXE
③C
④CPP
⑤DLL
06】下面不属文件操作的是:①创建
②复制③删除
④编辑【07】进行文件操作时,文件名中可以使用通配符来表示一批文件,其所在的位置可以是一个任意字符的通配符是什么?其所在的位置可以是零个或者任意多个字符的通配符是什么?“*.*”表示什么?“?A*.*”表示什么?“?A*.EXE”表示什么?08】有关文件目录的描述,错误的是:
①文件目录是文件分类存储的“抽屉”,它可以分门别类管理文件。
②如果没有文件目录,我们会觉得计算机中的大量的信息杂乱无章。
③文件目录的命名规则与文件完全相同,只不过没有扩展名(即使是*.?*的形式,也不认为“.”后的是扩展名)。
④一个文件目录只能放子目录或同一种属性的文件。
09】有关文件系统的树形结构的描述,错误的是:①如果操作系统将外存储分成多个分区,每个分区就是一个根目录;如果不分区,一个外存储就是一个根目录。②每个根目录下只能建立目录,不可以建文件。③目录下依然可以继续建文件子目录和文件。④这个文件系统就像一棵倒置的大树,根目录是树根、文件夹是树干、文件则是树叶。
10】文件目录结构如下图(Windows),描述错误的是:
①绝对路径:从根目录开始,依序到该文件(目录)之前的名称。
②相对路径:从当前目录开始到某个文件(目录)之前的名称。
③ “/”或“\”(Windows用“\”,其它一般用“/”)表示根目录与分隔符,..表示上一级目录,.表示当前目录。
④从根目录访问file4:C:\dir1\dir4\file4。
⑤当前目录为dir4,访问file2:\..\..\dir2\file2。
11】树形结构显示Dos命令是tree,在Windows命令行输入tree /f。
12】C++中文件的描述,错误的是:
①文件根据特定的目的而收集在一起的数据的集合。
②C++把每一个文件都看成是一个有序的字节流,每个文件都以文件结束标志结束。
③如果要操作某个文件,程序必须首先打开该文件。
④当一个文件被打开后,该文件就和一个流关联起来,这里的流实际上是一个字节序列。
⑤C++将文件分为文本文件、媒体文件和二进制文件,
⑥文本文件基于字符编码的文件,它是以“行”为基本结构的一种信息组织和存储方式。
⑦二进制文件是基于值编码的文件,这类文件用户一般不能直接读懂,只有通过相应的软件才能将其显示出来,一般是可执行程序、图形、图像、声音等等。
13】下面是文件操作的基本步骤,顺序已打乱,请重新排序:
①对文件进行读、写操作。
②打开文件,将文件指针指向文件,决定打开文件类型。
③在使用完文件后,关闭文件。
13】输入输出流重定向函数如下:

· 

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

有关参数和返回值的描述,错误的是:
①filename:需要重定向到的文件名或文件路径。
②mode:代表文件访问权限的字符串,“r”表示写文件,“w”表示读文件。
③stream:需要被重定向的文件流,“stdin”表示标准输入流,默认为键盘,“stdout”表示标准输出流,默认为屏幕。
④如果成功,则返回指向该输出流的文件指针,否则返回为NULL。
14】关闭文件流的代码如下:

· 

int fclose(FILE * stream);

有关描述错误的是:
①stream是需要关闭的文件流指针。②该函数关闭文件流,并释放文件指针和有关的缓冲区。
③如果流成功关闭,返回0,否则返回EOF,也就是1。
15】下面是输入输出流重定向的代码,描述错误的是:

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

#include<cstdio>int main(){  freopen("xxx.in", "r", stdin);  freopen("yyy.out", "w", stdout);  /** 中间的输入输出代码 **/  fclose(stdin);  fclose(stdout);  return 0;}

①以只读方式打开输入文件xxx.in。
②以写入方式打开输出文件yyy.out。
③使用freopen()重定向标准输入/输出流,使其指向前面指定的文件以后,把scanf改为frescanf,printf改为freprintf,cin改为frecin,cout改为frecout,就可以从文件读取数据,或向文件写入数据了。
④最后只要使用fclose关闭输入文件和输出文件即可。
16】编程(使用cin/cout和scanf/printf两种方法)