文件类型
从编程角度我们把文件两大类,分别文本文件,二进制文件。 二进制文件:存储的是数据的补码,无法用文件本文件直接打开,好处是读取文件中就可以直接使用。 文本文件:把数据以字符形式存储到文件中,可以被直接打开,检查数据是否正确,但读写都需要进行数据转换。
打开、关闭文件
FILE *fopen(const char *path, const char *mode);
path:文件的路径 mode:打开文件 “r” 以只读方式打开文件,如果文件不存在则打开失败。 “r+” 在r的基础上增加写权限 “w” 以只定方式打开文件,如果文件不存在则创建,如果文件已经存在则清空文件内容。 “w+” 在w的基础上增加读权限 “a” 以只写方式打开文件,如果文件不存在则创建,如果文件已经存在则新写入的内容追加到文件末尾。 “a+” 在a的基础上增加读权限 返回值: FILE结构指针,该结构中记录着被打开文件的相关数据,它是接下来操作文件的凭证。 如果文件打开失败则返回NULL。
注意:如果文件本身没有相关权限,则会打开失败。 ls -l filename 查看文件权限 r读 w写 x执行
int fclose(FILE *stream);
文本文件的读写:
int fprintf(FILE *stream, const char *format, ...);
int fscanf(FILE *stream, const char *format, ...);
随机读写:
每个打开文件都有一个指针记录着该文件读写到那里了,被称为文件的位置指针,该指针会随着文件读写操作,自动移动。 “r”,“r+” 方式打开的文件,位置指针指向文件的开头。 “a”,“a+” 方式打开的文件,位置指针指向文件的末尾。
int fseek(FILE *stream, long offset, int whence);
fseek(frp,0,SEEK_SET);
void rewind(FILE *stream);
long ftell(FILE *stream);
二进制文件读写:
size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream);
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
int remove(const char *pathname);
int rename(const char *oldpath, const char *newpath);
int access(const char *pathname, int mode);
main函数参数:
int main(int argc,const char* argv[])
{
printf("%d",argc);
for(int i=0; i<argc; i++)
{
printf("参数:%d %s\n",i+1,argv[i]);
}
}
总结
如果要保存东西,文件操作必不可少。
|