1、文件创建
任务描述:
- 输入要创建的文件名,输出是否创建成功信息
相关知识:
-
FILE *fopen(const char *path, const char *mode):创建文件
fopen函数打开一个文件,文件名由函数参数path给出。参数mode指向一个字符串,字符串中包含着访问文件的方式,具有有:
“r”: 以只读方式打开文件,该文件必须存在。
“w”: 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
“r+”: 以可读写方式打开文件,该文件必须存在。
“w+”: 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
“a”: 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
“a+”: 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
如果打开文件成功,则fopen函数返回一个指向FILE结构体的指针,否则返回NULL,并把错误代码存在errno中。
FILE是个结构体,包含了管理文件流所需的各个信息,包括文件描述符,指向缓冲区的指针等。
使用w,w+,或a+,都可以创建一个文件。
-
int fclose(FILE* stream):使用fclose函数来关闭fopen打开的文件流关闭一个流,可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区。
main.c:
#include<stdio.h> #include<stdlib.h> int main(int argc,char *argv[]) { FILE *fp; if(argc!=2){ perror("argc error "); exit(1); } fp=fopen(argv[1],"w"); if(fp==NULL){ perror("fopen fail "); exit(1); } else printf("create success "); fclose(fp); return 0; }
2、文件写
任务描述:
- 输入文件名及要写入文件的字符串
- 每次需要在原有文件内容基础上追加写入
相关知识:
-
size_t fwrite(void *ptr, size_t size, size_t nmemb, FILE *stream):向文件中写入数据
ptr:用于获取数据的地址(指针)
size:单个元素的大小,单位是字节
nmemb:元素个数
stream:提供数据的文件指针
函数返回写入文件的元素的个数
main.c:
#include<stdio.h> #include<stdlib.h> #include<string.h>
int main(int argc,char *argv[]) { FILE *fp; char str[20]={'