linux学习5——使用库函数实现文件打开、写入、读出和关闭(fopen(),fclose(),fputc(),fputs(),fpritf(),fgetc(),fgets()和fscanf())

打开文件:fopen();关闭文件:fclose();向文件输入内容:fputc();fputs();fprintf();

读取文件内容:fgetc();fgets();fscanf();

(1)打开文件函数:对想要打开的文件进行打开

fopen()函数

                        参数1:char*类型;要打开文件地址(同一工程下直接输入文件名即可)

                        参数2:char*类型:对文件的模式设置:有多种模式选择:

                        返回值:FILE*类型:返回Null:打开失败;其他:文件打开成功。

        File_fopen_test.c程序编写:打开工程中已经存在的io.txt文件,并且进行写操作(w)设置对于不存在的文件会进行创建,之后用if语句对函数返回值进行判断,判断文件是否打开成功。

        使用makefile进行程序运行:makefile运行程序修改:$@:表示目标文件;$^:表示全部依赖文件。

        

        运行程序后得到的结果:文件打开成功:则函数基本使用正确。

(2)关闭文件函数:对已经打开的文件进行关闭

        fclose()

                               参数1:FILE*类型:所要关闭文档的文件。(已经对其进行打开)

                                返回值:int类型:返回EOF:文件关闭失败;返回其他:文件开启成功:

        iofile为使用 fopen()已经打开文件的返回值。

        使用makefile运行程序:得到关闭成功结果。

(3)文件写入函数:在文件打开后,对文件内容进行写入,并且写入完成及时对文件关闭。

 写入函数1:fputc():对文本写入单个字符

                                        参数1:int类型:需要写入字符的ASCII码值

                                        参数2:FILE*类型:需要写入的文件返回值。(该文件已经打开)

                                       返回值:int类型:返回EOF,写入失败。返回其他:写入成功

                 要求:向打得开文件中写入小写字符a,使用makefile对其进行程序执行。

                  结果:成功向io.txt中写入字符a。

        

        写入函数2:fputs():向文件中写入字符串

                                          参数1:char*类型:要输入的字符串内容。

                                          参数2:FILE*类型:需要写入文件返回值(该文件已经打开)

                                          返回值:int 类型:返回EOF文件打开失败,返回其他,文件打开成功。

                使用makefile运行程序,运行结果如下:

        写入函数3:fprintf():向文件中格式化写入内容:

                                参数1:FILE*类型:要写入的打开文件

                                参数2:char*类型:格式字符串,指定后续参数转换格式

                                参数3:可变参数列表,包含和格式化字符串指定格式相对应的数据项。

                                返回值:int类型:返回EOF:写入失败,返回其他,写入成功。

makefile运行编写函数:运行结果过如下,符合设定预期

(4)读取函数:将文件中的数据进行读取

        首先需要对打开文件中,将文件设置为读模式“r”。

        读取函数1:fgetc():读取文档中的单个字符

                                参数1:FILE*类型:已经打开的读取文件返回值

                                返回值:char类型:返回EOF:读取失败,返回其他:读取成功。(其他内容中包含读取到的文档内容)

                注意:在读取中文时,不确定中文读取的字节数,因此需要添加循环,不断读取文档中字节,循环条件:当读取数值不等于EOF时,则循环成立。执行语句:打印完成后再次读取文档内容,直到读取全部内容,返回值为EOF时停止。

       

        读取文件函数2: fgets()读取文档中的字符串

                                参数1:char*类型:用来保存读取到的字符串

                                参数2:int类型:参数1中数组的长度大小

                                 参数3:FILE*类型:要读取的文档(已经使用fopen()函数对其进行打开)

                                 返回值:char 类型:返回参数1中所指的字符串。失败返回EOF。

        运行结果为:读取io.txt文件中的全部内容:

       

        读取文件函数3fscanf()按格式化需求读取文档

                                    参数1:FILE*类型:要读取的文档的返回值

                                     参数2:char*类型:文档中需要读取文档的格式(固定格式读取)

                                     参数3:可变参数:读取文档内容的暂存地址:

                                     返回值:返回EOF:读取失败,返回其他,读取完成。

要求:对user.txt文档中的格式化内容进行读取,使用fscanf()函数,来进行读取。

            在读取时,该函数一次只读取一段该格式的内容,因此需要进行循环读取

其他:1:经典错误:可查看.c文件名和makefile文件是否保持一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值