打开文件: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文件中的全部内容:
读取文件函数3:fscanf()按格式化需求读取文档;
参数1:FILE*类型:要读取的文档的返回值
参数2:char*类型:文档中需要读取文档的格式(固定格式读取)
参数3:可变参数:读取文档内容的暂存地址:
返回值:返回EOF:读取失败,返回其他,读取完成。
要求:对user.txt文档中的格式化内容进行读取,使用fscanf()函数,来进行读取。
在读取时,该函数一次只读取一段该格式的内容,因此需要进行循环读取
其他:1:经典错误:可查看.c文件名和makefile文件是否保持一致。