C语言下载网页文件(C语言入门教程)

C语言零基础入门-文件

这节课的主要内容:

1,文件的基本知识。

2,文件操作实例。

1. 基础知识1.1 基础概念1.1.1 文件

这个概念不用说大家应该都知道是什么,虽然自己的定义可能不是很准确,但是大家应该都有着自己的理解。

比如:txt文本文件,pdf文件,jpg,png等等,都是文件。

1.1.2 文件名组成

文件名的组成有两部分:文件名 后缀。

文件名就是给文件起的名字。

后缀就是标识这个文件是什么类型的。

C语言下载网页文件(C语言入门教程)

如图所示:”airplane_0627.off”,”临时.txt”,”1.ply”。

图片中的文件名分别为”airplane_0627″,”临时”,”1″。

每个文件对应的后缀就是:”off”,”txt”,”ply”。

1.1.3 电脑显示后缀

可能有很多的电脑看不到后缀,这是因为你没有打开,需要手动打开一下。

这里以win10为例,win7以及其它系统自行百度。

C语言下载网页文件(C语言入门教程)

这样你就会发现你电脑中的文件都会有一个后缀了。

1.1.4 路径

路径分为两种:绝对路径,相对路径。

相对路径就是相对于某一个参照点,而指出的路径。比如:你家在小红家向北走1000米,左转直走40米,再右转500米过一个马路就到了。

为什么要将路径呢?

因为我们要在C语言中读取文件,那么文件肯定会有存放的路径,所以我们首先就要弄明白计算机的路径怎么玩。

在dos窗口中操作路径命令:

键盘按下 win r 键。

输入 cmd 回车。

C语言下载网页文件(C语言入门教程)

进入到dos窗口

C语言下载网页文件(C语言入门教程)

于是就可以在这里切换路径,体验一下绝对路径与相对路径了。

dos的基础命令:

dir:显示当前路径下有什么文件。

C语言下载网页文件(C语言入门教程)

cd命令:他是切换路径的命令。

在上边的图片中看到有一个 “.3T” 的的文件夹,于是使用cd切换进去。

C语言下载网页文件(C语言入门教程)

../:上一级目录。

两个点一个斜杠配合cd使用的时候就是返回上一级目录。

C语言下载网页文件(C语言入门教程)

./:当前目录。

一个点一个斜杠就是当前目录,经常在相对路径中使用。(为什么后边讲)

C语言下载网页文件(C语言入门教程)

e: :切换到e盘。

直接输入盘符再加一个冒号,就直接进入不同的磁盘。

C语言下载网页文件(C语言入门教程)

你电脑有什么盘才可以进什么盘哦。

接下来就可以体验一下绝对路径与相对路径了。

> 绝对路径

C语言下载网页文件(C语言入门教程)

但是在 “C:\Users\12170\Music” 路径中有一些音乐:

C语言下载网页文件(C语言入门教程)

首先需要将盘符切换到C盘。

C语言下载网页文件(C语言入门教程)

注意:绝对路径牵扯到盘符切换的,需要先切换盘符,然后在输入绝对路径才有效

输入绝对路径:

C语言下载网页文件(C语言入门教程)

在实验一下其他路径:

C语言下载网页文件(C语言入门教程)

只要同属于一个盘符,绝对路径可以畅行无阻。不同盘符需要先切换盘符。

> 相对路径

假设此时有两个文件,文件A的路径是”C:\Users\12170\down\src\domain”,文件B的路径是”C:\Users\12170\down\bin”。

C语言下载网页文件(C语言入门教程)

当前目录在B文件所在的”C:\Users\12170\down\bin”目录,然后想要找到A的文件,就要先走到down目录(down在当前目录的上一级,所以输入 ../ 就是上一级)。

在进入”src\domain”,目录

C语言下载网页文件(C语言入门教程)

最后,以这个目录为参照,再返回到B目录。

C语言下载网页文件(C语言入门教程)

ok,路径完结。

1.2 文件基础1.2.1 读写类型

读写类型分为两种:字符类型,字节类型。

字符类型就是我们所谓的字符串类型。文字,程序等等字符类型的内容用 字符类型 读取。

字节类型就是存放的文件是每一个个字节组成的。图片,视频,音频等等一般用 字节类型 读取。

读不懂没关系,记住什么文件用什么方式读就好了。

1.2.2 打开文件

一个箱子里边存放有货物,如果想要取出获取就必须先打开箱子。

文件也是这个原理,一个文件里边存放有内容,想要将文件中的内容读出就必须先打开文件。

打开文件例子:

首先我在桌面新建一个 1.txt 的文本文件(你随意,只要绝对路径写对就可以)。

C语言下载网页文件(C语言入门教程)

注意保存的时候保存为ASNI编码。

C语言下载网页文件(C语言入门教程)

在win电脑中使用C语言读取的文件都应该是ANSI编码。至于为什么就说来话长了。以后用到了再说吧。

代码:

还要注意一点,编程语言中的路径斜杠与计算机中的路径斜杠方向相反。

#include<stdio.h>void main(){ FILE *fp; if( (fp = fopen(“C:/Users/12170/Desktop/1.txt”,”r”)) == NULL){ printf(“文件打开错误。”); return; }else{ printf(“文件打开SUCCESS。”); }}

结果:

C语言下载网页文件(C语言入门教程)

解释:

FILE *fp;定义了一个文件类型的指针,FILE是C语言内置的文件类型的数据结构。

fp = fopen(文件路径名,读取方式),使用文件路径找到指定的文件,然后按照指定的读取方式打开文件,并且fp指向这个文件(相当于fp此时就是一个门,通过这个门就可以处理文件中的数据了)。

读取方式就是你打算怎么操作这个文件:

r(只读)。r (可读可写,但是文件必须存在)。

w(只写)。w (可读可写,这会新建一个文件)。

a(追加)。

b(读写的是2进制文件)。还有一些模式大家自行了解。

这些模式可以混搭的:

rb(只读,并且是以二进制的形式读入)。

wb(只写,并且是以二进制的形式写入)。

等等。

提个醒:上边打开文件的方式,大家可以牢记,以后用文件这样打开就可以,只用更换路径与读取方式即可。

1.2.3 读字符文件

当获取到文件的指针fp之后,就可以为所欲为了。

程序:

#include<stdio.h>void main(){ FILE *fp; if(( fp = fopen(“C:/Users/12170/Desktop/1.txt”,”r”) ) == NULL){ printf(“文件打开错误。\n”); return; }else{ printf(“文件打开SUCCESS。\n”); } while( !feof(fp) ){ printf(“%c”, fgetc(fp)); } fclose(fp); printf(“\n”);}

结果:

C语言下载网页文件(C语言入门教程)

解释:

feof(文件指针)是文件的一个特有方法,用来判断文件是否读取结束。

fgetc(fp)也是文件的一个特有方法,每次从文件指针fp中读取一个字符。

C语言下载网页文件(C语言入门教程)

1.2.4 写字符文件

程序:

#include<stdio.h>void main(){ FILE *fp; if(( fp = fopen(“C:/Users/12170/Desktop/filename.txt”,”w “) ) == NULL){ printf(“文件打开错误。\n”); return; }else{ printf(“文件打开SUCCESS。\n”); } char ch = getchar(); while( ch != ‘#’ ){ fputc(ch, fp); ch = getchar(); } fclose(fp); printf(“\n”);}

结果:

C语言下载网页文件(C语言入门教程)

打开文件看看。

C语言下载网页文件(C语言入门教程)

解释:

思路:从dos黑窗口中输入一串字符,这个字符串会被 getchar()函数 逐一获取里边的一个个字符,然后把一个个字符赋值给ch变量。

紧接着,会判断ch中存放的当前字符是不是我们规定好的停止字符#,如果不是就会将当前ch中的字符写入文件,紧接着ch获取字符串中的下一个字符,再次判断是不是停止符号。如果是就会停止写入文件。

C语言下载网页文件(C语言入门教程)

2. 字节文件实战

目的:

用C语言实现文件复制的功能,将指定的音乐复制一份到桌面。

分析:

前文说过,音乐,视频属于二进制文件。读写的时候对文件的操作模式需要加上“b”。

完成音乐的复制,其实就是将原始音乐文件读取之后,再写入到指定文件中就好了。

程序:

#include<stdio.h>void main(){ FILE *fpIn; FILE *fpOut; if(( fpIn = fopen(“C:/Users/12170/Music/林俊杰-将故事写成我们.mp3″,”rb”) ) == NULL){ printf(“输入文件打开错误。\n”); return; }else{ printf(“输入文件打开SUCCESS。\n”); } if(( fpOut = fopen(“C:/Users/12170/Desktop/将故事写成我们.mp3”,”wb “) ) == NULL){ printf(“输出文件打开错误。\n”); return; }else{ printf(“输出文件打开SUCCESS。\n”); } unsigned char buf[1024]; int rc; while( (rc = fread(buf,sizeof(unsigned char), 1024,fpIn)) != 0 ){ fwrite( buf, sizeof( unsigned char ), rc, fpOut ); } fclose(fpIn); fclose(fpOut); printf(“\n”);}

结果:

C语言下载网页文件(C语言入门教程)

复制成功,也可以听(在顶部可以听听,JJ超棒的)。

分析:

其实这里主要需要介绍两个二进制操作函数:fread与fwrite。

其实就是:首先使用fread从fpIn指向的文件中读出一定量的字节数据放入buffer中。(一定量的意思是,最多读取buffer数组的最大长度的数据量,最小可以是0,是0的时候标识文件已经读完了。)

之后,在使用fwrite函数将buffer中的字节数据写入fpOut指向的文件中,写入的数据量的大小是刚才读取的时候存放到buffer中的数据量rc。

C语言下载网页文件(C语言入门教程)

函数分析。

C语言下载网页文件(C语言入门教程)

3. 结束

C语言正式结束。恭喜大家,正式成为编程届的一份子。

发表评论

登录后才能评论